2.1 React Native 设计思路
如果你之前做过 Android 或 iOS 开发,就会发现 React Native 设计思路是不一样的。
移动端主要功能就是根据数据用户展示界面。如果用 Android 或者 iOS 原生代码开发,尤其是当数据改变时,你需要编写逻辑代码判断如何显示,就像你雇了一个不聪明的建筑工人,你不得不事无巨细地告诉他“如何去做”。
而React Native 就是一个聪明的建筑工人,React Native 继承了 React 的设计思路。你只需告诉他“我想要什么样子”,他就会替你搞定一切。当数据改变时,只需要告诉他新的图纸,他不会把整个建筑拆掉,而是很聪明地把这次图纸和上次的图纸做一个对比,发现不同之处,然后只去做适当的修改。
React的工作方法把开发者从繁琐的操作中解放出来,开发者只需要着重“我想要显示什么”,而不用操心“怎么去做”。 React Native的开发理念可以归结为一个公式:
UI=render(data)
当数据一致的情况,展现的界面(UI) 是完全一致的。对于开发者来说,重要的是区分哪些属于 data,哪些属于 render,想要更新用户界面,要做的就是更新 data。
不同于常见的MVC模式,React 的设计思路是把功能拆分成若干个小功能,让每个组件专注于单一的功能。
任何一个复杂的应用,都是由一个简单的应用发展而来的,当应用很简单,功能很少的时候可能只有一个组件就足够了。但是,随着功能增加,越来越多的功能放在一个组件中就会显得非常臃肿和难以管理。
当开发者发现一个组件功能太多代码量太大的时候,就要考虑拆分组件了,用多个小组件来代替。拆分组件最关键的就是确定组件的边界,每个组件都应该是可以独立存在的。
虽然组件应该是独立存在的,但是并不是说组件就是孤岛一样的存在,不同组件之间是会有通信交流。毫无疑问,如何组织数据是程序最重要的问题。
React组件的数据分为两种,属性(prop,property的简写) 和 状态(state),都属于公式
UI=render(data)
中的 data ,无论 prop 或者 state 的改变,都可能引发组件的重新渲染,如果是其它变量值改变,不允许影响到界面改变。
接下来我们通过演示案例给大家讲解下属性和状态。