MobX快速入門教程(重要概念講解)

轉載請注明原文地址:http://www.cnblogs.com/ygj0930/p/7372119.html

?

一:Mobx工作流程圖

?

二:MobX涉及到的概念

1:狀態state

組件中的數據。

2:被觀察observable

被observable修飾的state數據將會暴露給整個app,各觀察者組件都可以根據state值的變化作出響應。

3:觀察者observer

被observer修飾的組件,將會根據組件內使用到的被observable修飾的state的變化而自動重新渲染(原理:用autorun包裹了render函數,state變化觸發autorun從而自動渲染)

4:action

state值的修改需要在action函數中進行。

5:衍生值computed

get:基于state值,通過一些計算得到的新值并返回給調用者。

set:get的相反運算,參數為一個值,由該值進行get函數中的反運算,得到對應的state值并賦予state。

6:衍生行為autorun

基于state的變化而觸發的一系列行為(注意:這些行為不改變state值、不產生新的數據),通常為日志記錄、請求發送、UI渲染等。

?

三:Mobx的使用

掌握了上面的基本概念,Mobx的使用流程就清晰了:

新建一個mobx目錄,在其中新建一個appStore.js文件,專門用于管理整個app的state。appStore中定義一個Component,在組件中:

1:定義需要被全局觀察的state,用@observable修飾

2:定義改變state的行為函數,用@action修飾

3:定義基于某state,通過計算產生新值的get函數,用@computed修飾

4:定義基于所傳參數,通過計算得到state值的set函數,用@computed修飾

5:定義基于state變化,自動觸發的行為函數,用@autorun修飾

6:在文件末尾,新建一個該組件的實例,并export

然后,在其他組件文件中,就可以import 這個組件實例,直接使用 ?組件實例.XXX ?訪問數據、方法了。

注意:其他組件是觀察者組件,用@observer修飾。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257700.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257700.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257700.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CentOS工作內容(七)禁用IPV6

CentOS工作內容(七)禁用IPV6 用到的快捷鍵 tab 自動補齊(有不知道的嗎) ctrla 移動到當前行的開頭(a ahead) ctrle 移動到當前行的開頭(e end) ctrlu 刪除(剪切)此處至開始所有內容 復制進來:按一下鼠標右鍵粘貼到SercureCRT 復制出去&#x…

循環結束后變回去 設置一個值_VBA掌握循環結構,包你效率提高500倍

這是系列免費教程《Excel VBA:辦公自動化》,還是老規矩,看看我們走到哪里了。1.認識VBA:什么是VBA?2.這些掌握了,你才敢說自己懂VBA3.VBA變量5年踩坑吐血精華總結4.VBA中重要的強制申明,誰看誰明…

連接到kali linux服務器上的MySQL服務器錯誤

前言:想把數據庫什么的都放在虛擬機kali Linux里,但無奈出了好多錯誤。 首先:可以參照上一篇文章開啟kali服務器端的遠程連接功能,上一篇文章 然后:使用window端的sqlyog(MySQL圖形化連接工具)連…

dedecms后臺怎么添加發布軟件?織夢后臺軟件內容管理

使用織夢cms有很多的功能,其中有一個是在dedecms后臺添加發布軟件,然后在前臺大家可以直接下載軟件,在織夢cms后臺怎么添加發布軟件呢?下面是織夢軟件內容管理的主要操作步驟。使用織夢cms有很多的功能,其中有一個是在…

301 302區別_如何正確理解301,302和canonial標簽

今天我們來學習一下幾個比較容易混淆的頁面跳轉標簽,301,302,relcanonial。在谷歌SEO里面,我們比較容易常見的是第一個301,302和canonial出現的比較少,但是不代表不存在,我會嘗試從以下價格方面…

ffmpeg文檔08-表達式計算/求值

8 表達式計算/求值 在計算表達式時,ffmpeg通過libavutil/eval.h接口調用內部計算器進行計算。 表達式可以包含一元運算符、運算符、常數和函數 兩個表達式expr1和expr2可以組合起來成為"expr1;expr2" ,兩個表達式都會被計算,但是新…

為什么手機游戲手柄沒有流行起來?

問答社區知乎上有人提了一個問題,“為什么手機用游戲手柄沒有流行?” Ta找了不少論證:1)手機用戶數量很大;2)大量用戶在手機上花費最多時間的是玩游戲;3)游戲機平臺(的游…

c++排序算法ppt_C/C++學習教程:C語言排序算法—插入排序算法

前言:插入排序算法是所有排序方法中最簡單的一種算法,其主要的實現思想是將數據按照一定的順序一個一個的插入到有序的表中,最終得到的序列就是已經排序好的數據。直接插入排序是插入排序算法中的一種,采用的方法是:在…

python函數參數

1.位置參數 2.默認參數 指向參數為不可變對象 3.可變參數 **args 一個列表list或是元組tuple 4.關鍵字參數 **kw,是一個字典dict 5.命名關鍵字參數 *, 轉載于:https://www.cnblogs.com/aliy-pan/p/5198025.html

Python 常用函數 configparser模塊

使用ConfigParser模塊讀寫ini文件 ConfigParserPython的ConfigParser Module中定義了3個類對INI文件進行操作。分別是RawConfigParser、ConfigParser、SafeConfigParser。模塊所解析的ini配置文件是由多個section構成,每個section名用中括號‘[]’包含,每…

自制Unity小游戲TankHero-2D(3)開始玩起來

自制Unity小游戲TankHero-2D(3)開始玩起來 我在做這樣一個坦克游戲,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)這個游戲制作的。僅為學習Unity之用。圖片大部分是自己畫的,少數是從網上搜來的。您可以到我的github頁…

mysql按月分列統計_實現mysql按月統計的教程

mysql有個字段是DATETIME類型,要實現可以按月統計,該怎么寫sql語句?select month(f1) from tt group by month(f1)or select DATE_FORMAT(f1,%m) from tt group by DATE_FORMAT(f1,%m)比如數據庫的為2008-01-15 12:10:…

Log4j的擴展-支持設置最大日志數量的DailyRollingFileAppender

Log4j現在已經被大家熟知了,所有細節都可以在網上查到,Log4j支持Appender,其中DailyRollingFileAppender是被經常用到的Appender之一。在討論今天的主題之前,我們先看下另外一個Appender。 最常用的Appender——RollingFileAppend…

VirtualBox虛擬機安裝CentOS 7

新建虛擬機 因為比較簡單,所以對于VirtualBox就不做過多介紹了,直接下載安裝即可,安裝好之后打開Oracle VM VirtualBox管理器,點擊新建,選擇Red Hat(根據windows主機選擇 32/64 bit,通常會自動識…

mysql 指定賬戶已存在_安裝mysql時告訴我指定的賬戶已存在?

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云數據庫專家保駕護航,為用戶…

C語言:用字符讀取流和輸出流來讀寫入數據。(文本文件)

/* 文件的幾種操作模式: r:只讀 w:只寫 rw:可讀可寫 文件的分類: t:文本文件(字符文件) b:二進制文件(字節文件)注意: 采用只讀方式打開文件時,如果源文件不存在,打開文件會失敗! 采用只寫方式打開文件時,不管源文件存不存在,都不會失敗…

PC 上訪問設備數據庫的方法

通過 .NET 訪問 .sdf 的數據庫的方法: 在 VS2005 IDE 中,創建 SQL MOible 數據庫,編輯表結果和填充數據。 具體是在 Server Explorer 中,右鍵單擊 “Data Connections”,選擇 “Add Connection”,新建一個 …

模板原理和操作數據類的觀點【艱難的一天,慢慢的會過去的】

1.模板原理:視圖類【將數據輸出到模板中,實現對視圖的控制】 smarty的類實現對視圖的控制【展示和smarty的基本語法:smarty需要它的庫進行支持】 面向對象的編程中對象的訪問和類的訪問本質上還是代碼空間的訪問,區別也在于對象的…

mysql 用戶 類別_從mysql里讀取用戶類型

##1、后端1(從mysql里讀取用戶類型):from django import formsfrom django.forms import widgetsfrom django.forms import fieldsfrom app01 import modelsfrom django.forms import ModelChoiceField,ModelMultipleChoiceFieldfrom django.shortcuts import rende…

從C語言到C++成長經歷所得的一些技巧和感悟

我介紹幾個辦法,學習辦法,期望你能找到愛好1。必定要和喜愛編程的,或編程兇猛的,或常常編程的人,在一同,常常探討問題!初學編程會有許多問題呈現,你自己很 難處理 c是我們必定要學的…