分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

mirror.js 整合redux的好工具

发布时间:2023-09-06 01:07责任编辑:彭小芳关键词:js

mirror.js 很简单,让state管理更方便了,没有新增api,值 得使用

https://github.com/yurizhang/mirror

package.json

{
"name": "webpack",
"version": "0.1.0",
"private": true,
"dependencies": {
"axios": "^0.16.2",
"cross-env": "^5.0.1",
"element-react": "^1.0.19",
"element-theme-default": "^1.3.7",
"isomorphic-unfetch": "^2.0.0",
"mirrorx": "^0.2.5",
"next": "^3.0.0-beta16",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"react-redux": "^5.0.5",
"redux": "^3.7.0"
},
"devDependencies": {
"react-scripts": "^1.0.7",
"redux-devtools": "^3.4.0"
},
"scripts": {
"dev": "node ./server.js",
"next_build": "next build",
"next_start": "node ./server-prd.js",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
import React from ‘react‘import mirror, {actions, connect, render} from ‘mirrorx‘// 声明 Redux state, reducer 和 action,// 所有的 action 都会以相同名称赋值到全局的 actions 对象上mirror.model({ ???name: ‘app‘, ???initialState: { ?????total:1, ?????list: [70,10] ????}, ???reducers: { ?//用来修改state ?????increment(state,data) { ???????console.log("state increment:"+data) ???????console.log(state) ???????let list=state.list; ???????console.log(list) ???????list.push(Math.floor(Math.random()*100)); ???????//let tmpArray=state.list ||[]; ???????return { ??//这里返回的要和你state结构是一样的 ?????????total:state.total+1, ?????????list: list ???????} ?????}, ?????decrement(state) { ???????return { ?????????total:state.total-1, ?????????list: [88] ?????????} ?????} ???}, ???effects: { ?????async incrementAsync() { ??//用来异步修改state ???????await new Promise((resolve, reject) => { ?????????setTimeout(() => { ???????????resolve() ?????????}, 1000) ???????}) ???????actions.app.increment() ?????} ???} ?}) ???const App = props => { ???console.log("props") ???console.log(props) ???return ( ?????<div id="counter-app"> ???????<h1>{props.app.total}</h1> ???????<h1>{props.app.list}</h1> ???????<div className="btn-wrap"> ?????????<button onClick={() => actions.app.decrement()}>-</button> ?????????<button onClick={() => actions.app.increment(‘ssssss‘)}>+</button> ?????????<button style={{width: 100}} onClick={() => actions.app.incrementAsync()}>+ Async</button> ???????</div> ?????</div> ???) ?} ???const ?Mirror=connect(state => { ???console.log("state") ???console.log(state) ???return { ?????app:state.app, ??//mapToProps 把state做为prop送给render ?????//total: state.app.total, ?????//data: state.app.list ??????????} ?})(App) ?render(<Mirror/>, document.getElementById(‘mirror‘))

mirror.js 整合redux的好工具

原文地址:http://www.cnblogs.com/yuri2016/p/7452799.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved