React数据传递---context

来源:互联网 发布:电子滚动屏幕软件 编辑:程序博客网 时间:2024/05/21 14:47

state是在constructor当中定义,并且用来传值,props是在引用其它组件中定义,并且在其组件中调用,

context是在组件中定义一个函数,并且把它放在引用的组件中,供其后面的组件来调用它,当然那个时候就又变成props的概念了

state 、props 、context 都是React传值的数据的引用,并且都是单向的。




上下文的精髓是可以跨级传递数据,爷爷组件可以直接传递数据到孙子组件。

语法比较晦涩:

app/Yeye.js



app/Baba.js   里面虽然发生了事,但是被我注释了,因为要测试孙子有没有接受到爷爷传的值



app/Sunzi.js

React会将上下文当做构造函数的第二个参数传入:


结论:

(1)当祖先元素中更改了上下文的数据,此时所有的子孙元素中的数据都会更改,视图也会更新

(2)反之不成不立,可以认为上下文的数据字啊子孙元素中是只读的。此时又要需要使用奇淫技巧,就是在context中共享一个操作祖先元素的函数,子孙元素通过上下文获得这个函数,从而操作祖先元素的值.

也就是说,state是自制的不涉及传值的事儿:props是单向的,父亲----->儿子:context也是单向的,祖先---->后代,如果要反向,就要传入一个函数。


app/Yeye.js



app/Sunzi.js



context很少用,传值基本用props。除非特别深的跨级别传值,可以用context


原创粉丝点击