vuex的使用和简易实现


Posted in Vue.js onJanuary 07, 2021

这里记录一下vuex的使用和vuex的简易实现

首先创建对应的store目录和对应的入口index.js

import Vue from 'vue'
import Vuex from 'vuex'
import products from './modules/products'
import cart from './modules/cart'

Vue.use(Vuex)

export default new Vuex.Store({
 strict: process.env.NODE_ENV !== 'production',
 state: {
  count: 0,
  msg: 'Hello Vuex'
 },
 getters: {
  reverseMsg (state) {
   return state.msg.split('').reverse().join('')
  }
 },
 mutations: {
  increate (state, payload) {
   state.count += payload
  }
 },
 actions: {
  increateAsync (context, payload) {
   setTimeout(() => {
    context.commit('increate', payload)
   }, 2000)
  }
 },
 modules: {
  products,
  cart
 }
})
  • 首先注册vuex的插件
  • 开发阶段开启strict严格模式
  • 配置初始的state
  • 配置对应的getters
  • 配置对应的mutations 无副作用的函数更新
  • 配置actions在此做异步处理
  • 最后配置模块
  • 模块中配置:
const state = {}
const getters = {}
const mutations = {}
const actions = {}

export default {
 namespaced: true,
 state,
 getters,
 mutations,
 actions
}

配置模块命名空间namespaced:true 导入store时的模块名

使用的时候

vuex的使用和简易实现

可以 通过一些对应的vuex提供的方法把store中的对应属性和方法拿到组件中

vue父子通信

vuex的使用和简易实现

vuex的使用和简易实现

vuex的使用和简易实现

或者就是自定义 组件的 v-model

非父子组件:Event Bus
我们可以使用一个非常简单的 Event Bus 来解决这个问题:

vuex的使用和简易实现

vuex的使用和简易实现

vuex的使用和简易实现

还有一种需要注意的,外部props转换为内部state

name: 'ArticleMeta',
 props: {
  article: {
   type: Object,
   required: true
  },
  user: {
   type: Object
  }
 },
 data () {
  return {
   currentArticle: this.article, isDelete: false
  }
 },

以上就是vuex的使用和简易实现的详细内容,更多关于vuex的使用和实现的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
vue实现下载文件流完整前后端代码
Nov 17 Vue.js
Vue使用Element实现增删改查+打包的步骤
Nov 25 Vue.js
vue中如何自定义右键菜单详解
Dec 08 Vue.js
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 Vue.js
vue中使用echarts的示例
Jan 03 Vue.js
vue实现锚点定位功能
Jun 29 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
vue实现移动端div拖动效果
Mar 03 Vue.js
Vue如何清空对象
Mar 03 Vue.js
vue3不同环境下实现配置代理
May 25 Vue.js
Vue 打包后相对路径的引用问题
Jun 05 Vue.js
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 Vue.js
vue watch监控对象的简单方法示例
Jan 07 #Vue.js
vue.js watch经常失效的场景与解决方案
Jan 07 #Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 #Vue.js
如何在vue-cli中使用css-loader实现css module
Jan 07 #Vue.js
vue3中轻松实现switch功能组件的全过程
Jan 07 #Vue.js
vue+elementui通用弹窗的实现(新增+编辑)
Jan 07 #Vue.js
详解Vue2的diff算法
Jan 06 #Vue.js
You might like
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
基于html5和nodejs相结合实现websocket即使通讯
2015/11/19 NodeJs
AngularJS学习笔记(三)数据双向绑定的简单实例
2016/11/08 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
Python入门篇之字符串
2014/10/17 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
Python tkinter常用操作代码实例
2020/01/03 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
女性时尚在线:IVRose
2019/02/23 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
应届大学生自荐信
2013/12/05 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
优质服务演讲稿
2014/05/14 职场文书
社区助残日活动总结
2014/08/29 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
JavaScript阻止事件冒泡的方法
2021/12/06 Javascript
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers