日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

用react-service做状态管理,适用于react、react native

發(fā)布時(shí)間:2025/3/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用react-service做状态管理,适用于react、react native 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載自:https://blog.csdn.net/wo_shi_ma_nong/article/details/100713151?。

react-service是一個(gè)非常簡(jiǎn)單的用來(lái)在reactreact native中進(jìn)行狀態(tài)維護(hù)的包。

其用法非常簡(jiǎn)單,只有有限的幾個(gè)屬性和方法,非常好用。

官方文檔在這里:https://github.com/caoyongfeng0214/react-service 。

用法如下:

首先,在自己的reactreact native項(xiàng)目中安裝包:

npm install r-service -save

注意:?安裝的包名是r-service,而不是react-service。實(shí)際上react-service是另一個(gè)不同的包。

react-service的概念里,Service是數(shù)據(jù)與UI之間的橋梁。Service用來(lái)處理數(shù)據(jù),并維護(hù)狀態(tài),UI只負(fù)責(zé)數(shù)據(jù)的展示。可為每一類數(shù)據(jù)創(chuàng)建一個(gè)Service

可將所有的Service放在./service文件夾下。

以下為官方文檔上的一個(gè)小示例:

./service/User.js

import Service from 'r-service';class User extends Service{ // 每個(gè)Service繼承自react-service中的Service gets(){if(!this.$data.users){ // 數(shù)據(jù)存儲(chǔ)在 $data 中// HTTP調(diào)用服務(wù)端提供的接口獲取數(shù)據(jù)var users = [{id: 10, name: 'CYF'},{id: 20, name: '張三豐'},{id: 30, name: '袁崇煥'}];// 將數(shù)據(jù)使用 $set 方法存儲(chǔ)到 $data 中this.$set('users', users);}}remove(id){var idx = this.$data.users.findIndex((T) => {return T.id == id;});if(id >= 0){this.$data.users.splice(idx, 1);// 數(shù)據(jù)發(fā)生改變后,并不會(huì)立即應(yīng)用到UI中,需調(diào)用 $apply 方法使之體現(xiàn)到UI中this.$apply();}// // 第二種方式// var users = this.$data.users.filter((T) => {// return T.id != id;// });// // 使用 $set 方法重新設(shè)置數(shù)據(jù),將立即體現(xiàn)在UI中,而不用調(diào)用 $apply 方法// this.$set('users', users); } }

每個(gè)Service需繼承自react-service,其從父類中繼承了一些方法和屬性。所有數(shù)據(jù)存儲(chǔ)在$data中。

當(dāng)$data中的數(shù)據(jù)發(fā)生改變后,需調(diào)用$apply()方法使更改體現(xiàn)到UI中。但如果使用$set(key, value)方法設(shè)置數(shù)據(jù),則不用調(diào)用$apply()

在UI中,綁定Service$data中的數(shù)據(jù)。

./App.js

import React from 'react'; import {View, Text, Button} from 'react-native';import User from './service/User';class App extends React.Component {constructor(props){super(props);// 初始化Service,將當(dāng)前組件作為參數(shù)傳入,// 這樣,當(dāng)前組件的狀態(tài)就能在Service中維護(hù)了this.user = User.init(this);// 調(diào)用Service中的方法獲取數(shù)據(jù)this.user.gets();}remove(id){// 調(diào)用Service中的remove方法this.user.remove(id);}render(){// UI中的數(shù)據(jù)從Service的$data獲取return <View>{this.user.$data.users?this.user.$data.users.map((T) => {return <View><Text>{T.id} : {T.name}</Text><Button title="Remove" onPress={()=>this.remove(T.id)}/></View> }):null}</View> } }

以上是官方文檔上的示例。

我再稍候補(bǔ)充一下,在另一個(gè)頁(yè)面中展示同樣的用戶列表:

./pages/Users.js

import React from 'react'; import {View, Text} from 'react-native';import User from './service/User';class Users extends React.Component {constructor(props){super(props);this.user = User.init(this);}render(){return <View>{this.user.$data.users?this.user.$data.users.map((T) => {return <View><Text>{T.id} : {T.name}</Text></View> }):null}</View> } }

其實(shí),第二個(gè)頁(yè)面中使用的Service與第一個(gè)頁(yè)面中的是同一個(gè),因此,在第二個(gè)頁(yè)面雖然沒有調(diào)用gets()方法,但仍然能夠綁定到數(shù)據(jù)。并且,在第一個(gè)頁(yè)面中對(duì)數(shù)據(jù)的更改,也會(huì)同時(shí)反應(yīng)到第二個(gè)頁(yè)面中。

?

轉(zhuǎn)載于:https://www.cnblogs.com/mafengzi/p/11503631.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的用react-service做状态管理,适用于react、react native的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 老司机在线永久免费观看 | 九九热中文字幕 | 韩国女主播一区二区 | 欧美成人吸奶水做爰 | 变态另类ts人妖一区二区 | 麻豆91视频 | 美日韩黄色 | 亚洲欧洲综合av | 人人妻人人澡人人爽人人精品 | 日韩av在线网站 | 奶罩不戴乳罩邻居hd播放 | 尤物视频在线 | 葵司有码中文字幕二三区 | 精品影视一区二区 | 99激情| 国产一线天粉嫩馒头极品av | 久久综合五月婷婷 | 一区三区在线 | 免费观看一区二区三区视频 | 中文字幕精品一区二区三区视频 | 国产av一区二区三区最新精品 | 久久久久噜噜噜亚洲熟女综合 | 美女视频91| 色哟哟网站在线观看 | 综合天堂av久久久久久久 | 日韩有码专区 | 色接久久 | 久久精品aaaaaa毛片 | 极品91尤物被啪到呻吟喷水 | 91香蕉视频在线观看免费 | 国产好片无限资源 | 骚婷婷 | 久久久久国产精品人妻 | 少妇被躁爽到高潮无码文 | 日本青青草视频 | 激情片 | 久久久国产亚洲 | 久久伊人在| 91麻豆精品在线观看 | 国产人成一区二区三区影院 | 手机在线看a | 在线成人影视 | 免费看91 | 一区二区三区免费在线 | 福利视频在线播放 | 深夜福利视频网站 | 91打屁股| 青草国产 | 女人十八岁毛片 | 黑人性生活视频 | 青青草国产一区二区三区 | 免费污视频 | 久久精品欧美日韩 | 国产一国产精品一级毛片 | 色91视频 | 视频这里只有精品 | 天天在线免费视频 | 日日夜夜添 | 欧美极品少妇xxxxⅹ免费视频 | 美女毛片网站 | 不许穿内裤随时挨c调教h苏绵 | 特黄一区 | 午夜国产一级 | 二区在线观看 | 成人综合影院 | 狠狠操天天干 | 欧美美女在线观看 | 在线观看视频日韩 | 日韩每日更新 | 一级片aaa| 天天色综合天天 | 两根大肉大捧一进一出好爽视频 | 亚洲一区二区三区四区不卡 | 国产av无毛 | 日韩一级色 | av在线播放国产 | 无码精品一区二区三区AV | 欧美色久 | 又黄又爽又色的视频 | 中文字幕视频二区 | 女生脱裤子让男生捅 | 欧美日韩中文一区 | 九色视频偷拍少妇的秘密 | 老司机激情影院 | 欧美日韩三级在线观看 | 五月天综合社区 | 96精品| 久久噜噜色综合一区二区 | 一级黄色大片免费 | 黄色在线小视频 | 鲁鲁在线 | 国产精品一国产精品 | 欧美日韩精品在线观看 | 91自啪 | 免费一级毛片麻豆精品 | 粉嫩小泬无遮挡久久久久久 | 日日日日日日bbbbbb | 欧美疯狂做受xxxxx高潮 | 动漫玉足吸乳羞免费网站玉足 |