vuex 项目结构目录及一些简单配置介绍


Posted in Javascript onApril 08, 2018

首先先正经的来一段官网的"忠告":

vuex需要遵守的规则:

一、应用层级的状态应该集中到单个 store 对象中。

二、提交 mutation 是更改状态的唯一方法,并且这个过程是同步的。

三、异步逻辑都应该封装到 action 里面。

文件目录结构

vuex 项目结构目录及一些简单配置介绍

文件之间的关系:

store文件夹 - 存放vuex的系列文件

store.js - 引入vuex,设置state状态数据,引入getter、mutation和action

getter.js - 获取store内的状态

mutation.js - 更改store中状态用的函数的存储之地

action.js - 提交mutation以达到委婉地修改state状态,可异步操作

简单而又普通的写法

store.js文件:

import Vue from 'vue'
import Vuex from 'vuex'
import actions from './actions'
import mutations from './mutations'
Vue.use(Vuex)
const state = {
 a: '初始值',
 b: 'balabala...'
}
export default new Vuex.Store({
  state,
  actions,
  mutations
})

main.js文件中(从根组件注入store,就像注入router一样):

通过在根实例中注册 store 选项,该 store 实例会注入到根组件下的所有子组件中,且子组件能通过 this.$store 访问到。

import store from './store/index'
new Vue({
 el: '#app',
 router,
 store,
 ...
})

Getter.js 的简单配置( store 的计算属性,接受state为参数)

export default {
  doneTodos: state = >{
   return state.todos.filter(todo = >todo.done)
  }
}

获取(某组件的计算属性内部):

computed: {
 doneTodosCount () { 
  return this.$store.getters.doneTodosCount 
 }
}

可传参 的getter属性的简单配置

export default{

 getTodoById: (state) => (id) => { 
  return state.todos.find(todo => todo.id === id) 
 }
}

获取(某 组件的计算属性内部 ):

computed: {
 getTodoById() { 
  return this.$store.getters.getTodoById(‘参数')
 }
}

mutation.js简单配置:

export default {
  increment(state) {
   //变更状态
   state.count++
  }
}

触发(组件中)

this.$store.commit(state,payload)
actions.js简单配置:
export default{
 action (context) {
 //异步操作
  setTimeout(()=>{
   //变更状态
   context.commit('mutationFunName',value)
  })
 }
}

触发(组件的)

this.$store.dispatch('mutationFunctionName')
2018-04-07 18:13:34

总结

以上所述是小编给大家介绍的vuex 项目结构目录及一些简单配置介绍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript Cookie显示用户上次访问的时间和次数
Dec 08 Javascript
JQuery的Alert消息框插件使用介绍
Oct 09 Javascript
jquery文字上下滚动的实现方法
Mar 22 Javascript
javascript setTimeout和setInterval计时的区别详解
Jun 21 Javascript
简约JS日历控件 实例代码
Jul 12 Javascript
JavaScript中 this 指向问题深度解析
Feb 21 Javascript
addEventListener()与removeEventListener()解析
Apr 20 Javascript
ExtJs整合Echarts的示例代码
Feb 27 Javascript
vue.js获得当前元素的文字信息方法
Mar 09 Javascript
如何从0开始用node写一个自己的命令行程序
Dec 29 Javascript
使用React手写一个对话框或模态框的方法示例
Apr 25 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
Jan 03 Javascript
JS求Number类型数组中最大元素方法
Apr 08 #Javascript
angular2模块和共享模块详解
Apr 08 #Javascript
vue下拉列表功能实例代码
Apr 08 #Javascript
详解Vue-cli webpack移动端自动化构建rem问题
Apr 07 #Javascript
vue-cli开发环境实现跨域请求的方法
Apr 07 #Javascript
Angular5给组件本身的标签添加样式class的方法
Apr 07 #Javascript
Vue实现内部组件轮播切换效果的示例代码
Apr 07 #Javascript
You might like
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
jcrop基本参数一览
2013/07/16 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
js实现文字滚动效果
2016/03/03 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
2017/12/18 Javascript
Vue组件库发布到npm详解
2018/02/17 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
Python实现将xml导入至excel
2015/11/20 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
Python pip配置国内源的方法
2020/02/14 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
python时间time模块处理大全
2020/10/25 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
毕业自我鉴定范文
2013/11/06 职场文书
采购助理岗位职责
2014/02/16 职场文书
影视后期实训报告
2014/11/05 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang
MySQL导致索引失效的几种情况
2022/06/25 MySQL