mobx-react使用

安装

yarn add mobx@5 mobx-react@5 -S

使用

创建 mobx / store.js 用于存放状态数据

import {observable,action} from "mobx"
class Store {
   @observable number = 0; // 观察对象
   @action add = ()=>{ //严格模式下定义的对外暴露的修改方法
       this.number = 111
  }    
}
const store = new Store()
export default store

创建 app 组件 (app 组件表示父组件)

import React from "react"
import ChildA form "./childA"
import ChildB from "./childB"
import store from "./mobx/store.js"
import {Provider} from "mobx-react"
class Index extends React.component{
   render(){
       return (
      <Provider store={store}>
          <div>
              <ChildA />
                   <ChildB />
               </div>
           </Provider>
      )
  }
}
export default Index

类组件中的使用

在组件调用 ChildA.jsx 模拟类组件的使用方式

经过高阶函数的包装后, 原始的组件的 props 中就携带了 store 的对象

import React from "react"
import {inject,observer} from "mobx-react"

@inject("store")
@observer
class ChildA extends React.component{
   handelClick = ()=>{
       this.props.store.add()
  }
   render(){
       return (
      <div>
          <h2>this is ChildA {this.props.store.number}</h2>
   <button onClick={handelClick}>click</button>
           </div>
      )
  }
}

函数组件中的使用

在组件中调用 ChildB 中使用函数组件

import React from "react"
import {observer} from "mobx-react"
import store from "./mobx/store"
const ChildB = ()=>{
   return (
  <div>
      <Observer>
          {
                  ()=>{
                      return (
                      <h2>this is childB {store.name}</h2>
                      )
                  }
              }
           </Observer>
       </div>
  )
}

函数组件中的高阶组件用法

import React from "react"
import {inject,observer} from "mobx-react"
const ChildC = (props)=>{
    const handleClick = ()=>{
       props.store.add()
    }
    return (
    	<div>
        	<p>this is ChildC {props.store.number}</p>
            <button onClick={()=>handleClick()}>click</button>
        </div>
    )
}
export default inject("store")(observer(ChildC))
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇