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 相关文章推荐
在线编辑器的实现原理(兼容IE和FireFox)
Mar 09 Javascript
jquery模拟按下回车实现代码
Sep 20 Javascript
JavaScript中的原型继承基础学习教程
May 06 Javascript
JavaScript中0和""比较引发的问题
May 26 Javascript
JS检测移动端横竖屏的代码
May 30 Javascript
JavaScript中的Array 对象(数组对象)
Jun 02 Javascript
JavaScript实现Java中Map容器的方法
Oct 09 Javascript
轻松实现jquery选项卡切换效果
Oct 10 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
Oct 11 Javascript
使用javascript函数编写简单银行取钱存钱流程
May 26 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
Nov 30 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
Jul 23 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
我的论坛源代码(三)
2006/10/09 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
PHP闭包函数详解
2016/02/13 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
javascript中一些util方法汇总
2015/06/10 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
python del()函数用法
2013/03/24 Python
Python常用正则表达式符号浅析
2014/08/13 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
什么是岗位职责
2013/11/12 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
大学生逃课检讨书
2015/05/04 职场文书
公司员工管理制度
2015/08/04 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
2016秋季运动会前导词
2015/11/25 职场文书