废话不多说,本篇主要是介绍Angular中各种组件的用法,顺便跟比较RN中的组件做比较
1.组件生成方式
在RN中,组件的生成是通过注解,RN中则是通过继承组件类。
2.组件交互方式
2.1 父子组件数据交互方式
NG中组件之间进行数据交互,主要通过组件中暴露的两个接口,Input和Output。 RN中,组件交互主要通过属性props。在RN中组件分成属性跟状态两个属性,属性用于控制组件的行为,状态控制视图层。父组件调用子组件时,通过对子组件的的属性赋值,传递数据,子组件无法直接给父组件的属性赋值,所以可以通过父组件传递一个回调给子组件,子组件通过回调抛出数据。
2.2 其他组件数据交互方式
NG中可以通过服务共享数据。注意,通过服务共享数据,必须保证服务没有被多次实例化,在需要共享数据的组件的共同父级模块中实例化服务即可。NG中还可以通过路由传递数据。这个在RN中的也可以通过路由传参,但是它没有类似服务的东西,该怎么传递数据呢。可以通过PubSubJS,构建一个类似发布订阅者模式的机制,在需要接收数据的组件订阅事件,在需要抛出数据的组件发布数据
2.3 父子组件之间方法互调
调用方法其实都是一个原理,获取父或子组件的当前对象(this)。NG中可以直接通过 #name 的方式声明一个变量获取子组件的this指针,RN中没有提供这样的语法糖,我们可以通过props属性,把子组件的this指针传给父组件。参考数据交互方式,父组件提供一个回调给子组件用于接收this指针即可。子组件调父组件的方式都一样,父把自己传给子就好了。