美文网首页
React Native学习之路(6) - React Nati

React Native学习之路(6) - React Nati

作者: woow_wu7 | 来源:发表于2017-07-18 23:28 被阅读45次

    (1)单一组件的生命周期再学习

    • **一 ( 组件初始化 ): **
    • (1) getDefaultProps:获取初始的配置参数(获取默认的props)
    • (2) getIniticalState:初始化组件状态(初始化state)(在组件挂载之前会调用一次)
    • (3) componentWillMount:组件即将被渲染和装载
    • (4) render:组件渲染
    • (5) componentDidMount:组件装载完毕
    • 二 ( 组件运行中 ):state状态改变会触发(6)
    • (6) shouldComponentUpdate:是否需要更新组件(一般从性能考虑,用该方法控制:状态变化的弧度,数量等。从而来判断是否马上更新,还是积累到一定的量在更新,注意:在shouldComponentUpdate方法中不要用setState方法来修改状态)
    • (7) componentWillUpdate:组件即将要更新
    • (8) render:渲染
    • (9) componentDidUpdate:组件已经完成更新
    • 外部props改变
    • (10) componentWillReceiveProps:组件即将接受传值
    • 三 ( 卸载组件 )
    • (11) onMount
    • (12) componentWillOnmount:组件即将被卸载


      react-native生命周期

    (2)声明组件的两种方式

    react native声明组件的两种方式,其中componentWillMount和construtor的作用是一样,都是渲染页面之前做一些业务逻辑。

    • (1) var ShopIndex = React.createClass( { } )
    var ShopIndex = React.createClass({
      render() {
        return (
          <View style={styles.container}>
              <ViewPagerUI/>
              <GoodsTab/>
          </View>
        );
      }
    });
    
    • (2) class ShopIndex extends Component{ }
    class ShopIndex extends Component{
      constructor(props) {
        super(props);
        this.props.navComponent.setNavItems({
          rightItem: {
            component: (
              <TouchableOpacity style={[styles.navItem, {marginRight: 7}]}>
                <Image style={{width: 20, height: 20}} source={{uri: shareImg}}/>
              </TouchableOpacity>
            ),
            event: function() {
              this.props.navigator.push({
                title: '购物车',
                component: <Cart/>
              });
            }.bind(this)
          }
        });
      }
      render() {
        return (
          <View style={styles.container}>
            <ViewPagerUI/>
            <GoodsTab/>
          </View>
        );
      }
    }
    

    (3)通过修改state中的状态项,然后用三目运算符,去控制styles,source等任何的属性的选择。

    例子:
    <Image 
    style={styles.sLogo} 
    source={ this.state.up ? require('../../love.png') : require('../../loveup.png') }
    >
    </Image>
    

    (4) React-Navigation导航器

    • (1) 安装
    npm install react-navigation -save
    
    • (2) 为了方便Android、iOS统一管理,在根目录下新建app目录,将所有js文件,写在这个文件夹中。

    相关文章

      网友评论

          本文标题:React Native学习之路(6) - React Nati

          本文链接:https://www.haomeiwen.com/subject/bytzhxtx.html