亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

React Native中Mobx的使用方法詳解

 更新時間:2018年12月04日 10:38:57   作者:一只菜鳥攻城獅啊  
這篇文章主要給大家介紹了關于React Native中Mobx的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

從今天開始我們來搞搞狀態(tài)管理可否,這幾天沒怎么寫博客,因為被病魔戰(zhàn)勝了,tmd,突然的降溫讓我不知所措,大家最近注意安全,畢竟年底了,查的嚴,呸,大家注意保暖

特別聲明:寫該文只是寫一下用MobX的思路,有很多地方我會直接放官網(wǎng)鏈接,因為官網(wǎng)已經(jīng)寫的夠詳細了

首先來個比較簡單的,MobX。

引用官網(wǎng)上的一句話:

MobX 是一個經(jīng)過戰(zhàn)火洗禮的庫,它通過透明的函數(shù)響應式編程(transparently applying functional reactive programming - TFRP)使得狀態(tài)管理變得簡單和可擴展。MobX背后的哲學很簡單:

MobX 是一款精準的狀態(tài)管理工具庫,對我來說非常容易學習和接受。我在 React 和 React Native 應用中使用過 Flux、Alt、Redux 和 Reflux,但我會毫不猶豫地說,MobX 的簡單性立即成為了我最喜歡的狀態(tài)管理工具。我期望能將它運用在未來的項目中,并且對 MobX 的發(fā)展拭目以待。

任何源自應用狀態(tài)的東西都應該自動地獲得。其中包括UI、數(shù)據(jù)序列化、服務器通訊,等等。

上官網(wǎng)的圖

  

環(huán)境我就不配了,官網(wǎng)給了詳細的教程,我的環(huán)境是RN+TS,這里需要特別注意一下,由于Mobx要用的裝飾器,如果單純的用create-react-app安裝好環(huán)境后,一定要特別特別注意:

此時使用@observable是不行的,因為不支持裝飾器語法,

此問題有兩種解決方案:1.在當前環(huán)境中設置支持裝飾器,

           下面是官網(wǎng)的詳細配置鏈接,https://cn.mobx.js.org/best/decorators.html

            2.使用MobX的內(nèi)置的 decorate  工具在不支持裝飾器語法的情況加使用

接下來下面給你吃,不是,下面我用一個小例子來演示一下,Go,Go,Go(注意,我這里面默認裝飾器是可用的,因為我環(huán)境配好了已經(jīng))

1.yarn add mobx 

2.首先我們狀態(tài)管理肯定會有一個倉庫吧,那我們來建一個倉庫,(注意:我創(chuàng)建了兩個小的分支,因為狀態(tài)管理總不可能懟到一個文件里面吧)

首先上一手倉庫的結構

 

home.tsx的代碼  

注意:1. 從mobx中引入observable,action

   2.用裝飾器修飾倉庫的數(shù)據(jù)  

   3.導出時需要new一下    

import { observable, action } from 'mobx'


class List {
 @observable isShowMap: boolean = false

 @action
 switchTab (info: boolean) {
 this.isShowMap = info
 }
}

export default new List()

list.tsx的代碼

  注意:1.此處多加入了runInAction,不加此屬性當然也可以,但是就不會記錄時間旅行了

import { observable, action, runInAction } from 'mobx'

class List {
 @observable listData: Array<any> = []

 @action
 getListData () {
 fetch('https://ik9hkddr.qcloud.la/mock/cookbook-list.json')
  .then(reponse => reponse.json())
  .then(result => {
  runInAction(() => {
   this.listData = result.data
  })
  })
 }
}

export default new List()

index.js的代碼

  注意:在此處將兩個樹枝里面的數(shù)據(jù)都引入,合并到一起

import list from './list'
import home from './home'
const store = { list, home }
export default store

3.將倉庫綁定到根組件上

     注意:在此引入Provider將倉庫和根組件綁定

import React from 'react'
 import { Provider } from 'mobx-react'
 import Home from './pages/home/Home'
 import HotList from './pages/hotlist/HotList'
 import store from './store' 

export default class componentName extends React.Component {
 render() {
 return (
  <Provider store={store}>
  <RootStack></RootStack>
  </Provider>
 )
 }
}}

4.最后一步,在組件中引用倉庫里的數(shù)據(jù),并可以修改倉庫里的數(shù)據(jù)

  注意:1.引入observer和inject,將組件和倉庫連接起來,類似于在React中使用react-redux中的connnect方法

import React from 'react'
import { observer, inject } from 'mobx-react'
import {
 View,
 Text,
} from 'react-native'

interface Props {
}
interface State {
}
//此處時引用最重要的步驟用inject和observer
@inject('store')
@observer
export default class Home extends React.Component<Props, State> {
 render () {
 return (
  <View>
  {/* 引用store里面儲存的值 */}
  <Text>{this.props.store.home.isShowMap}</Text>
  </View>
 )
 }
 componentDidMount () {
 //調用函數(shù)修改store里面的值
 this.props.store.home.switchTab(value)
 }
}

到這里,今天的隨筆已經(jīng)結束了,可能寫的不是那木有條理,若有錯誤還往各位同學指出,我嗓子已經(jīng)說不出話來了,所以在這提醒各位同學

 學技術的同時一定要記得鍛煉身體,我的天,少吃飯多吃藥,多打代碼多保健,活著最重要!

 總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • react redux中如何獲取store數(shù)據(jù)并將數(shù)據(jù)渲染出來

    react redux中如何獲取store數(shù)據(jù)并將數(shù)據(jù)渲染出來

    這篇文章主要介紹了react redux中如何獲取store數(shù)據(jù)并將數(shù)據(jù)渲染出來,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 深入理解React與閉包的關系

    深入理解React與閉包的關系

    本文將深入探討React與閉包之間的關系,我們將首先介紹React和閉包的基本概念,然后詳細解釋React組件中如何使用閉包來處理狀態(tài)和作用域的問題,希望通過本文的閱讀,你將對React中閉包的概念有更深入的理解,并能夠在開發(fā)React應用時更好地應用閉包
    2023-07-07
  • React中的Hooks路由跳轉問題

    React中的Hooks路由跳轉問題

    這篇文章主要介紹了React中的Hooks路由跳轉問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • useCallback和useMemo的正確用法詳解

    useCallback和useMemo的正確用法詳解

    這篇文章主要為大家介紹了useCallback和useMemo的正確用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • React入門教程之Hello World以及環(huán)境搭建詳解

    React入門教程之Hello World以及環(huán)境搭建詳解

    Facebook 為了開發(fā)一套更好更適合自己的JavaScript MVC 框架,所以產(chǎn)生了react。后來反響很好,所以于2013年5月開源。下面這篇文章主要給大家介紹了關于React入門教程之Hello World以及環(huán)境搭建的相關資料,需要的朋友可以參考借鑒。
    2017-07-07
  • React文字展開收起組件的實現(xiàn)示例

    React文字展開收起組件的實現(xiàn)示例

    本文主要介紹了React文字展開收起組件的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • React?forwardRef?用法案例分析

    React?forwardRef?用法案例分析

    這篇文章主要介紹了React forwardRef用法,forwardRef允許你的組件使用ref將一個DOM節(jié)點暴露給父組件,本文結合案例分析給大家講解的非常詳細,需要的朋友可以參考下
    2023-06-06
  • React如何優(yōu)雅的捕獲異常

    React如何優(yōu)雅的捕獲異常

    捕獲異常是來定位你錯誤代碼的。本文主要介紹了 React如何捕獲異常,你知道多少種方法,ErrorBoundary,ErrorBoundary-try-catch等等。本文就來詳細的介紹一下
    2021-06-06
  • React中jquery引用的實現(xiàn)方法

    React中jquery引用的實現(xiàn)方法

    這篇文章主要介紹了React中jquery引用的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • React?組件性能最佳優(yōu)化實踐分享

    React?組件性能最佳優(yōu)化實踐分享

    這篇文章主要介紹了React組件性能最佳優(yōu)化實踐分享,React組件性能優(yōu)化的核心是減少渲染真實DOM節(jié)點的頻率,減少Virtual?DOM比對的頻率,更多相關內(nèi)容需要的朋友可以參考一下
    2022-09-09

最新評論