ReactNativeAndroid 面试react native

ReactNative面试(1)

2019-03-12  本文已影响15人  190CM

1.props和state的区别?

现在我们来总结下,props与state的区别:

props 和 state的区别 http://www.cnblogs.com/ysbpysbp/p/6115900.html

2.知道react-native的生命周期么?


15523592184747.jpg

https://www.jianshu.com/p/ea61a014ce4e
https://www.jianshu.com/p/379aecebb1dc

3.react-native父组件和子组件直接如何交互?

父控件调用子控件中的方法
在父控件中给子控件设置ref="ref1",然后设置button点击事件。在button点击事件中通过this.refs.ref1.buttonClick()来调用子控件中的方法
子控件调用父控件中的方法
在父控件中嵌套子控件的时候,给子控件添加事件属性,eg:
在父控件中给子控件添加了onPress={()=>this.btnClick()} 和onClick={()=>this.btn2Click()}事件
然后在子控件中通过this.props.onPress();调用父控件的()=>this.btnClick()方法。通过this.props.onClick();调用父控件的()=>this.btn2Click()方法

4.react-native父组件和兄弟组件之间如何交互?

Event Emitter/Target/Dispatcher :需要从EventEmitter/EventTarget/EventDispatcher继承或者实现合适的接口

Signals:与Event Emitter/Target/Dispatcher 相比,不需要指定事件的“名称”,可以避免硬编码带来的问题

Publish / Subscribe : 类似于很多语言中的事件总线EventBus广播的方式,相比EventEmitter,优点是组件之间可以完全独立,没有任何关联。React中比较常用的是库是PubSubJS,关于这个库的详细使用请查看官方的说明

[React Native]组件之间通信 https://www.jianshu.com/p/9b0d5a3d0518

5.如果给setState传入第二个参数,那这第二个参数有什么作用?是干什么的?

一个回调函数,当setState结束并重新呈现该组件时将被调用。

一些没有说出来的东西是setState是异步的,这就是为什么它需要一个第二个回调函数。通常情况下,最好使用另一种生命周期方法,而不是依赖这个回调函数,但是很高兴知道它存在。

this.setState( { username: 'tylermcginnis33' }, () => console.log('setState has finished and the component has re-rendered.') )

6.rn怎么跟原生进行交互?

JS调用原生
在调用原生时,我们需要实现RCTBridgeModule和RCT_EXPORT_MODULE();
RCT_EXPORT_MODULE();则是一个宏定义,返回moduleName,并且调用+ load方法注册

老版本的调用方式为,但是接口被标记为deprecated:__deprecated_msg("Subclass RCTEventEmitter instead");
[self.bridge.eventDispatcher sendAppEventWithName:kGiftReloadData body:nil];
新版本的调用方式为
ZanEventEmitter *emitter = [[ZanEventEmitter alloc] init]; emitter.bridge = self.bridge; [emitter sendEventWithName:kGiftReloadData body:nil];
https://www.jianshu.com/p/ea61a014ce4e

7.用过fetch么?那你知道fetch和ajax的区别么?

简单来说 Ajax的本质是使用XMLHttpRequest对象来请求数据;而fetch是用于发送请求的API。

具体的看这篇文章(http://www.cnblogs.com/September-9/p/7099975.html),因为ajax我没用过,对他不是很了解。

上一篇下一篇

猜你喜欢

热点阅读