最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Vue使用Redux的方法

来源:动视网 责编:小采 时间:2020-11-27 19:34:15
文档

Vue使用Redux的方法

Vue使用Redux的方法:这篇文章主要介绍了让Vue也可以使用Redux的方法,内容挺不错的,现在分享给大家,也给大家做个参考。上周末看Vuex源码,突发灵感,为什么都是Vuex啊。于是蛋疼一下午写了一个插件来帮助Vue可以使用ReduxGayhub Url Vue-with-Redux这是一个用于帮助
推荐度:
导读Vue使用Redux的方法:这篇文章主要介绍了让Vue也可以使用Redux的方法,内容挺不错的,现在分享给大家,也给大家做个参考。上周末看Vuex源码,突发灵感,为什么都是Vuex啊。于是蛋疼一下午写了一个插件来帮助Vue可以使用ReduxGayhub Url Vue-with-Redux这是一个用于帮助


这篇文章主要介绍了让Vue也可以使用Redux的方法,内容挺不错的,现在分享给大家,也给大家做个参考。

上周末看Vuex源码,突发灵感,为什么都是Vuex啊。

于是蛋疼一下午写了一个插件来帮助Vue可以使用Redux

Gayhub Url

Vue-with-Redux

这是一个用于帮助Vue使用Redux管理状态的插件。Redux是一个非常流行的状态管理工具。vue-with-redux为大家提供一个可以在Vue环境下使用Redux的途径。这回带来不同的开发体验。

开始

首先你需要通过如下命令安装vue-with-redux

npm install -save vue-with-redux

运行Demo

 git clone https://github.com/ryouaki/vue-with-redux.git
 npm install
 npm run serve

Usage

需要像下面这样改造你的入口文件:

 // 有可能是你的entry.js文件
 ... // 这里是你引入的其它包
 import VuexRedux from 'vue-with-redux';
 import { makeReduxStore } from 'vue-with-redux';
 import reduces from 'YOUR-REDUCERS';
 import middlewares from 'REDUX-MIDDLEWARES';

 Vue.use(VuexRedux);

 let store = makeReduxStore(reduces, [middlewares]);

 new Vue({
 store,
 render: h => h(App)
 }).$mount('#app')

下面是一个actionCreate函数:

 export function test() {
 return {
 type: 'TEST'
 }
 }

 export function asyncTest() {
 return (dispatch, getState) => {
 setTimeout( () => {
 console.log('New:', getState());
 dispatch({type: 'TEST'});
 console.log('Old', getState());
 }, 100);
 }
 }

Note: 你并不需要使用redux-thunk,因为Vue-with-Redux已经提供了对异步处理的支持.

这是一个reducer的例子:

 function reduce (state = { count: 0 }, action) {
 switch(action.type) {
 case 'TEST':
 state.count++;
 return state;
 default:
 return state;
 }
 }

 export default {
 reduce
 };

Vue的组件例子:

 <template>
 <p>
 <button @click="clickHandler1">Action Object</button>
 <button @click="clickHandler2">Sync Action</button>
 <button @click="clickHandler3">Async Action</button>
 <p>{{reduce.count}}</p>
 </p>
 </template>

 <script>
 import { test, asyncTest } from './../actions';

 export default {
 name: 'HelloWorld',
 props: {
 msg: String
 },
 // 你必须在这里预先定义你订阅的Redux中的状态。否则编译模版会报错。
 data() {
 return {
 reduce: {}
 }
 },
 methods: {
 clickHandler1() {
 this.dispatch({type: 'TEST'});
 },
 clickHandler2() {
 this.dispatch(test());
 },
 clickHandler3() {
 this.dispatch(asyncTest());
 },
 // 你必须实现一个mapReduxState函数,用于告诉Vue-with-Redux你需要订阅哪些redux中的状态
 // [ state ] 参数就是redux状态树的根。
 mapReduxState(state) { 
 return {
 reduce: state.reduce
 }
 },
 }
 }
 </script>

文档

Vue使用Redux的方法

Vue使用Redux的方法:这篇文章主要介绍了让Vue也可以使用Redux的方法,内容挺不错的,现在分享给大家,也给大家做个参考。上周末看Vuex源码,突发灵感,为什么都是Vuex啊。于是蛋疼一下午写了一个插件来帮助Vue可以使用ReduxGayhub Url Vue-with-Redux这是一个用于帮助
推荐度:
标签: VUE 使用方法 redux
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top