当前位置: 首页 > Web前端 > HTML

上下文来了,也许是时候放开redux或者mobx了,,

时间:2023-04-02 21:17:59 HTML

老铁,学不会了?别慌,它不会耽误你几分钟的……(躺脸,汗)很久很久以前用过react的同胞们可能都被它的状态管理和组件间的数据传递共享所困扰(依次通过props的笨拙方式)子组件传递)。这时候redux(类似mobx)出现了,我们才从水深火热中解脱出来(第三方库相对复杂麻烦)。..没接触过redux或者还在用redux的同学呢?别急,更简单的来了(前方高能,请注意!):ContextAPI!!!(Reactv16.3.0+)戳我查看更新日志先来安利一个todolist栗子:戳我查看源码什么是demoContext?Context的直译为context,是React16.3.0官方提供的一个API。它可以在不使用props的情况下完成项目中自上而下和组件之间的数据传递和共享,即你不需要依赖任何第三方状态数据插件库就可以完成这个任务。官方推荐的情况是:需要全局数据的时候,比如:主题,多语言系统或者用户登录授权等。==当然:==不需要那么死板。当你需要使用多级组件数据传输或者复杂的数据共享场景时,你也可以使用contextapi,它也可以用于缓存。Context的简单使用//1.使用React.createContext创建上下文提供者Provider和上下文订阅者cunsomerconst{Provider,Consumer}=React.createContext(defaultValue);//defaultValue根据使用场景设置//2.设置Provider组件//一般需要订阅的子组件的顶层父组件//value设置需要传递和共享的数据和改变数据的函数等//为了避免不必要的重绘和渲染,value的data属性值由组件状态设置{/*somecomponentwithconsumer*/}//3.设置Consumer组件//通过使用函数作为子元素订阅上下文的转换{value=>/*根据上下文值渲染一些东西*/}//结合Provider和Consumer就完成了。{somechildren}//更多的用法,比如生命周期函数调用(点击上面的demo查看),高阶组件等,浏览文档后,它很简单很简单的总结创建卖家和买家,通过大家非常熟悉的React组件方式进行交易,如此SimpleContext的用法,还等什么,赶紧扔掉其他第三方库吧!!结语:一点点,请不要打我,新功能可以尝试,需要大家的讨论和研究。类似redux的第三方库还是很强大的~~(前端攻城狮③群:743490497,欢迎大家进群讨论)更多内容请查看以下链接:https://reactjs.org/docs/context.htmlhttps://css-tricks.com/digging-into-反应上下文/