当前位置: 首页 > 后端技术 > Node.js

react简单教程中使用了mobx-todolist

时间:2023-04-03 11:00:32 Node.js

mobx是一个非常好用且简单易懂的状态管理工具。先把这个案例作为一个TODOlist案例说一下。使用antd风格,用mobx进行状态管理的具体效果如下项目案例源码:https://github.com/xiaqijian/react-mobx-demo1。初始化项目第一步是用create-react-app初始化一个项目,打开webpack配置项npxcreate-react-appreact-mobx-democdreact-mobx-demonpmruneject2。配置支持修饰符目前初始化的项目不支持修饰符,安装依赖cnpminstall--save-dev@babel/plugin-proposal-decoratorscnpminstall--save-dev@babel/plugin-proposal-class-properties后如上安装,找到项目中的package.json文件,修改如下....."babel":{//添加"plugins":[["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"loose":true}]],"presets":["react-app"]},找babel添加插件即可!3、安装antd和mobx没有什么特别的,安装yarnaddantdyarnaddmobxyarnaddmobx-react4即可。修改src目录下的文件,新建todolist.js和mobx。..最终目录如下贴代码mobx/index.js代码import{observable,action,computed}from'mobx'classStore{@observableInputvalue=''@observablelistdata=['2222223344','222223344','2222223344','2222223344','2222223344']@actionchangeInput(value){this.Inputvalue=value//console.log(value)}@computedgettodolen(){returnthis.listdata.length}@actionaddTodo(){this.listdata=[this.Inputvalue].concat(this.listdata)//让arr=this.listdata//this.listdata=arr.unshift(this.Inputvalue)this.Inputvalue=""console.log(this.Inputvalue)}@actiondeletodo(index){this.listdata.splice(index,1)}}exportdefaultnewStore()Todolist.js代码importReact,{useEffect}from'react'import{Button,Input,List}from'antd'import{inject,observer}from'mobx-react'//constdata=[//'22222',//'22222',//'22222',//'22222',//'22222'//]constTodolist=inject("store")(观察r(({store})=>{useEffect(()=>{console.log(store)})return(

{store.changeInput(e.target.value)}}style={{width:'500px',marginRight:'10px'}}value={store.Inputvalue}placeholder="输入内容"/>{store.addTodo()}}>添加
有{store.todolen}个项目({store.deletodo(index)}}>delete
]}>{item})}/>
)}))导出默认Todolist其他文件的代码去github上看,地址:https://github.com/xiaqijian/react-mobx-demo5。如何使用mobx大白话的意思是:mobx中有一个observable方法,监听变量。mobx中有一个操作可以修改可观察对象中的变量。mobx中有一个observer是监听变量的变化,告诉视图更详细的内容。mobx文档首发于公众号:nodefrontend

最新推荐
猜你喜欢