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 相关文章推荐
js判断浏览器的比较全的代码
Feb 13 Javascript
监控 url fragment变化的js代码
Apr 19 Javascript
Javascript中的String对象详谈
Mar 03 Javascript
javascript实现图像循环明暗变化的方法
Feb 25 Javascript
jQuery实现的AJAX简单弹出层效果代码
Nov 26 Javascript
javascript实现简单的全选和反选功能
Jan 05 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
Sep 20 Javascript
Vue.js之slot深度复制详解
Mar 10 Javascript
react native与webview通信的示例代码
Sep 25 Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
Dec 29 Javascript
jQuery实现简单全选框
Sep 13 jQuery
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中的超全局变量
2006/10/09 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
js字符串日期yyyy-MM-dd转化为date示例代码
2014/03/06 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
vuex 的简单使用
2018/03/22 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
微信小程序页面渲染实现方法
2019/11/06 Javascript
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
回门宴答谢词
2014/01/13 职场文书
初中数学教学反思
2014/01/16 职场文书
家长会主持词开场白
2014/03/18 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
入党介绍人考察意见
2015/06/01 职场文书
同学聚会祝酒词
2015/08/10 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
python井字棋游戏实现人机对战
2022/04/28 Python