美文网首页
react-hooks: useContext

react-hooks: useContext

作者: 前端的爬行之旅 | 来源:发表于2020-07-07 11:06 被阅读0次

React的useContext应用场景:

如果需要在组件之间共享状态,可以使用useContext()

举个🌰:

场景:现有两个组件Navbar和Messages,希望他们之间共享状态。

<div className="test">
    <Navbar />
    <Messages />
</div>
使用方法如下:

一、在两个组件的父组件上使用React的Context API,及在组件外部建立一个Context。

const TestContext = React.createContext({});
  • 父组件封装代码如下:
    TestContext.Provider提供了一个Context对象,这个对象是可以被子组件共享的。
import React from "react";
const TestContext= React.createContext({});
<TestContext.Provider 
    value={{
        username: 'superawesome',
    }}
>
    <div className="test">
        <Navbar />
        <Messages />
    </div>
<TestContext.Provider/>
  • Navbar组件代码如下(Message组件的代码也类似):
    useContext()钩子函数用来引入Context对象,从中获取username属性。
import React, { useContext } from "react";
const Navbar = () => {
    const { username } = useContext(TestContext);
    return (
        <div className="navbar">
            <p>{username}</p>
        </div>
    )
}

⚠️⚠️⚠️扩展知识:Navbar组件访问context的另一种方式:
组件引入TestContext并调用context,使用TestContext.Consumer(消费者)

import TestContext from "父组件";
const Navbar = () => {
    return (
        <TestContext.Consumer>
            {
                    context => {
                      return (
                        <div> {context.useName} </div>
                      )
                    }
                }
          </TestContext.Consumer>
    )
}

参考链接:

相关文章

  • react-hooks: useContext

    React的useContext应用场景: 如果需要在组件之间共享状态,可以使用useContext()。 举个?...

  • React Hook之useContext的介绍与使用

    useContext const context = useContext(Context);接受一个 conte...

  • react-hooks

    react-hooks react-hooks 是react16.8以后,react新增的钩子API,目的是增加代...

  • react-hooks

    前置 学习面试视频 总结react hooks react-hooks react-hooks为函数组件提供了一些...

  • useContext

    props和useContext的区别:useContext可以很方便的跨越多个层级共享state,props需要...

  • 7.React Hook之useContext的介绍与使用

    React的useContext应用场景: 如果想要组件之间共享状态,可以使用useContext。React 的...

  • react中 useContext 和useReducer的使用

    useContext和useReducer 可以用来减少层级使用, useContext,可以理解为供货商提供一个...

  • useContext

    接收一个 context 对象(React.createContext 的返回值)并返回该 context 的当前...

  • useContext

    上下文 全局变量是全局的上下文 上下文是局部的全局变量 使用方法 const Context = createCo...

  • useContext

    https://dmitripavlutin.com/react-context-and-usecontext/ ...

网友评论

      本文标题:react-hooks: useContext

      本文链接:https://www.haomeiwen.com/subject/mfcaqktx.html