React基础

一、react基本认识

1.react是一个用于构建用户UI的JS库。

2.若要使用react创建项目,需全局安装:npm(cnpm) i -g create-react-app。

3.react里面的交JSX,即javascript + xml。

4.JSX里面的插入变量,需用{},里面只支持表达式,不支持语句,例如(if else 则不能插入)

5.创建一个react项目,命令:create-react-app 项目名。

6.使用react,需在文件找中引入react(核心包), react-dom(浏览器使用)。

7.react-dom包含了一个render方法,用于渲染JSX。


二、react组件创建的方法 

1.const Xabc = () => { return (

hello world

) } 在render中用帕斯卡命名方式引入,例:   快捷键:rfc

rfc

2.class Xabc extends React.Component { render() { return (

你好
) }  快捷键:rcc

rcc

3.在react里面的JSX里,若是空元素,则推荐使用自闭合。

4.每一个组件的最外层只有一个根元素,在react 16 之后,新增了一个Fragment组件,用于如果您不想生成一层新的空DOM,可使用Fragment,在react中引入{Fragment}

5.this.props.children 是一种特殊的props,表示组件的子元素,相当于Vue里面的solt

6.如果是函数的方式创建的组件,想获取到props,需在函数的参数里面通过一个形参去获取。

7.父组件向子组件传参,直接在子组件调用的地方写属性,除字符串以外,都用{}.

三、state

1.用class创建的组件,也叫类组件,只有类组件才有state,若是用箭头函数创建的组件,也叫无状态组件(stateless component)

2.react里面的循环用数组的map实现。

3.创建state,一种是:直接在class里面:state= {}

4.第二种是constrcutor () {

        super();

this.state = {}

}

四、setState

1.在react里面,修改state必须在this.setState里面去修改,否则不会反应到render()里面

2.setState是异步的,若想获取最新的状态,需在setState中再传入一个回调函数,setState(val,[callback]),只有第二个参数才能获取到最新状态,第一个参数可以是一个对象,也可以是一个function,这个function的第一个参数是上一次的state的状态,必须return一个对象。

3.对于react的方法

    1.用箭头函数,this则指向react

    2.在DOM上调用时,用bind(this)改this指向

    3.不推荐在render里面改指向,可以在constrcutor里面用bind改this。

五、数组拷贝

深度拷贝与浅度拷贝的区别主要在于有没有为拷贝出的新对象在堆中重新分配一块内存区域。浅度拷贝即直接赋值,拷贝的只是原始对象的引用地址,在堆中仍然共用一块内存。而深度拷贝为新对象在堆中重新分配一块内存,所以对新对象的操作不会影响原始对象。


5.lodash

_.cloneDeep()


六、Ref

例如对一个input框进行聚焦事件

1.引入{createRef}

引入

2.对需要的DOM 元素进行操作

定义

3.创建

创建

4.执行(注意要加 .current)

拷贝参考文档:https://segmentfault.com/a/1190000011403163

你可能感兴趣的:(React基础)