美文网首页
react知识点

react知识点

作者: 12345qwert | 来源:发表于2020-03-20 11:05 被阅读0次
    • 在 React 中,有一个命名规范,通常会将代表事件的监听 prop 命名为 on[Event],将处理事件的监听方法命名为 handle[Event] 这样的格式。
    //新数据替换旧数据
    
    var player = {score: 1, name: 'Jeff'};
    
    var newPlayer = Object.assign({}, player, {score: 2});
    // player 的值没有改变, 但是 newPlayer 的值是 {score: 2, name: 'Jeff'}
    
    // 使用对象展开语法,就可以写成:
    // var newPlayer = {...player, score: 2};
    
    • 不要在调用 this.setState 时使用 this.state

    由于 this.setState 异步的缘故,这样的做法会导致一些错误,可以通过给 this.setState 传入函数来避免

    this.setState({
      value: this.state.value + 1
    })   // ✗ 错误
    
    
    this.setState(prevState => ({ value: prevState.value + 1 }))    // ✓ 正确
    
    • map 循环时请给元素加上 key 属性
    list.map(item => {
      return (
        <View className='list_item' key={item.id}>{item.name}</View>
      )
    })
    
    • 组件最好定义 defaultProps
    import Taro, { Component } from '@tarojs/taro'
    import { View, Input } from '@tarojs/components'
    
    class MyComponent extends Component {
    
      static defaultProps = {
        isEnable: true
      }
      
      state = {
        myTime: 12
      }
      
      render () {
        const { isEnable } = this.props
        const { myTime } = this.state
    
        return (
          <View className='test'>
            {isEnable && <Text className='test_text'>{myTime}</Text>}
          </View>
        )
      }
    }
    
    • 状态更新是异步的,在回调函数里拿数据
    // 假设我们之前设置了 this.state.counter = 0
    updateCounter () {
      this.setState({
        counter: 1
      }, () => {
        // 在这个函数内你可以拿到 setState 之后的值
      })
    }
    

    相关文章

      网友评论

          本文标题:react知识点

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