zoukankan      html  css  js  c++  java
  • React 学习笔记

    1、react 使用JSX语法来描述html,位于花括号的值会被当做一个JavaScript表达式进行求值

    2、props是组件的不可变属性,有个重要属性:children,可以使用props.children来引用位于前置标签和后置标签之间的内容

    3、state 组件所有可变的属性存储在state中。当state被修改时,组件会触发响应式渲染,组件自身及其子组件都会被重新渲染

    4、react中的事件:react为了高效,将事件处理从节点拿出来,统一放在文档根节点进行处理,当事件发生时会将事件映射到对应的组件去渲染。

    5、react中的属性采用驼峰式大小写原则(“onClick” 而非"onclick")

    6、JSX是react对JavaScript的扩展,用于在js中编写声明式XML风格语法,JSX有一组类似HTML的XML标签,转义后JSX会被转换为针对Reat库的调用。例如
    ```

    hello world

    ``` 会被转义为 ``` React.createElement("h1", null, "Hello world") ```

    7、JSX与HTML的不同之处:
    1) 标签名采取驼峰式命名规范 2)所有元素必须闭合 3)标签名基于DOM api,而不是html语言规范,其中一个例子是class vs className
    普通的html:

    <div class="some-class"> </div>
    

    而JSX却是

    <div className="some-class"> </div>
    

    8、JSX的特异之处
    1)单一根节点
    2)不支持if 语句,有类似需求使用三元问号表达式
    3)JSX中的注释必须使用花括号({})括起来
    4)React内置了XSS攻击保护措施,意味不可以动态动态生成html标签附加到JSX中。如果必须这样做,可以通过dangerouslySetInnerHtml属性来跳过XSS保护

    9、react表单内的组件有两种类型:受控组件和非受控组件
    1)受控组件:组件的值由外部传入,内部不可以改变组件的值
    2)非受控组件:组件不为任何输入域提供值,渲染后的元素值直接反应用户的输入

    10、React 虚拟DOM
    众所周知,操作DOM是一个耗时操作,为了提高性能,react实现了一个虚拟DOM,用户所有的修改都是直接操作虚拟DOM。为了保持真实DOM和虚拟DOM的一致,需要找出两者之间的最小变化量,这一过程称为子级校验。
    1)key属性,再需要进行插入、删除、替换和移动时可以快速找到组件
    2)refs属性,如果必须和真实DOM打交道,可以通过refs属性来操作真实DOM

  • 相关阅读:
    C++输入问题探究
    剑指offer自学系列(一)
    一道算法题加深我对C++中map函数的理解
    数据结构和算法自学之排序算法(一)
    pyqt5_01_流程走通
    最新谷歌驱动对照表
    移动端测试
    selenium封装
    request封装
    MD5自定义加密
  • 原文地址:https://www.cnblogs.com/graph/p/8232449.html
Copyright © 2011-2022 走看看