amenzai / myDiary

Record what you do every day
4 stars 0 forks source link

some interview questions #80

Closed amenzai closed 5 years ago

amenzai commented 5 years ago

Q1 你的技术栈主要是react,那你说说你用react有什么坑点?

  1. JSX做表达式判断时候,需要强转为boolean类型,如:
    render() {
    const b = 0;
    return <div>
    {
      !!b && <div>这是一段文本</div>
    }
    </div>
    }
  2. 尽量不要在 componentWillReviceProps 里使用 setState,如果一定要使用,那么需要判断结束条件,不然会出现无限重渲染,导致页面崩溃。
  3. 给组件添加ref时候,尽量不要使用匿名函数,因为当组件更新的时候,匿名函数会被当做新的prop处理,让ref属性接受到新函数的时候,react内部会先清空ref,也就是会以null为回调参数先执行一次ref这个props,然后在以该组件的实例执行一次ref,所以用匿名函数做ref的时候,有的时候去ref赋值后的属性会取到null。
  4. 遍历子节点的时候,不要用 index 作为组件的 key 进行传入。