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 相关文章推荐
教你在heroku云平台上部署Node.js应用
Jul 30 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
Oct 14 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
Jun 10 Javascript
JavaScript调用客户端Java程序的方法
Jul 27 Javascript
JavaScript中几种排序算法的简单实现
Jul 29 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 Javascript
vue权限路由实现的方法示例总结
Jul 29 Javascript
vue 使用外部JS与调用原生API操作示例
Dec 02 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
Apr 07 Javascript
在VUE style中使用data中的变量的方法
Jun 19 Javascript
js 函数性能比较方法
Aug 24 Javascript
vue解决跨域问题(推荐)
Nov 10 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
用 PHP5 轻松解析 XML
2006/12/04 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
Prototype Class对象学习
2009/07/19 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
使用JavaScript实现表格编辑器(实例讲解)
2017/08/02 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
Python获取当前时间的方法
2014/01/14 Python
在Python的Django框架中包装视图函数
2015/07/20 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
对python模块中多个类的用法详解
2019/01/10 Python
python反转列表的三种方式解析
2019/11/08 Python
Python hashlib模块的使用示例
2020/10/09 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
应用服务器有那些
2012/01/19 面试题
副董事长岗位职责
2014/04/02 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
python自动化测试之Selenium详解
2022/03/13 Python