vuex基础入门
Vuex简介
vuex的安装和组成介绍
[外链图片转存失败(img-nWQUUuyh-1565273314232)(https://upload-images.jianshu.io/upload_images/11158618-9e09a269f0a0fb6c.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]
vuex简介
vuex是一个专门为vue.js应用程序开的状态管理模式
它采用集中式存储管理应用的所有组件的状态
并以相应的规则保证以一种可预测的方式发生变化
应用场景
移动端开发和工程化开发有丰富经验
uejs,node以及小程序有深入研究
多个视图依赖于同一状态
来自不同视图的行为需要改变同一个状态
vue安装和组成介绍
state
数据仓库
getter
用来获取数据的
mutation
用来修改数据的
action
用来提交mutation
安装vuex
安装vuex包,npm install vuex
创建vuex实例: new Vuex.store()
main.js中将vuex实例挂载到vue对象上
安装vuex实战
[外链图片转存失败(img-POIIhS9C-1565273314234)(https://upload-images.jianshu.io/upload_images/11158618-6a6a3923bb48486d.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]
[外链图片转存失败(img-LhSjXOMF-1565273314236)(https://upload-images.jianshu.io/upload_images/11158618-c6e156dad735950b.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]
[外链图片转存失败(img-o8jeXWJs-1565273314239)(https://upload-images.jianshu.io/upload_images/11158618-cc4bf5a3abe6f244.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]
vue create vuex-demo
cd vuex-demo
code .
npm serve
yarn add vuex
main.js
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.store({
 state: {
  count: 0
 }
})
yarn serve
count++简介
state
中创建count字段
mutations
中创建一个count++ 的mutation
button
新增click事件触发mutation改变count
count++实战
const store = new Vuex.store({
 state: {
  count: 0
 },
 mutations: {
  countIncrease(state) {
   state.count++
  }
 // 第二种
 countIncrease(state, v) {
   state.count = v
  }
 }
})
new Vue({
 store,
 render: h=> h(App)
}).$mount("#app")
App.vue
<template>
 <div id="app">
  <h1>count: {{this.$store.state.count}}</h1>
 <h1>count:{{count}}</h1>
 <button @click="countIncrease"></button>
 </div>
</template>
methods: {
 countIncrease() {
  const v=100;
  this.$store.commit('countIncrease', v)
 }
}
分析
账号登录
不同的课程需要不同的会员等级
普通会员
vip会员
高级会员
功能
通过state.userInfo控制用户登录路由限制
多组件共享state.userStatus和state.vipLevel状态
多组件修改state.userStatus和state.vipLevel
index.js
const store = new Vuex.Store({
 state,
 getters,
 mutations,
 actions
})
Vue.use(Vuex)
exprot default store;
store文件
action.js
getter.js
index.js
mutations.js
state.js
[外链图片转存失败(img-MSTswUjk-1565273314246)(https://upload-images.jianshu.io/upload_images/11158618-2d98d03b5fdc7dec.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]
[外链图片转存失败(img-FXEG93t9-1565273314249)(https://upload-images.jianshu.io/upload_images/11158618-d910c75eb9eeffa2.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]
[外链图片转存失败(img-MB61hRDb-1565273314250)(https://upload-images.jianshu.io/upload_images/11158618-e7f0b2791a89ee82.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]
登录权限
store
index.js
state.js
mutations.js
// index.js
import Vue from 'vue'
import Vuex from 'vuex'
import state from './state'
import mutations from './mutations'
Vue.use(Vuex)
const store = new Vuex.Store({
 state,
 mutations
})
export default store
main.js
import Vue from "vue"
import App from "./App.vue"
import Vuex from "vuex"
import router from "./router"
import store from "./store"
Vue.config.productionTip = false
Vue.use(Vuex)
state.js
export default {
 userInfo: ""
}
main.js
Vue.prototype.$store = store
router.beforeEach((to, next) => {
 console.log(store.state, "store.state")
 if (store.state.userInfo || to.path('./login')) {
  next()
 } else {
  next({
    path: "/login"
  })
 }
})
state.js
export default {
 userInfo: "",
 userStatus: "",
 vipLevel: ""
}
若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。
请点赞!因为你们的赞同/鼓励是我写作的最大动力!
欢迎关注达叔小生的简书!
这是一个有质量,有态度的博客
[外链图片转存失败(img-6kX9wjR2-1565273314252)(https://upload-images.jianshu.io/upload_images/11158618-9ab0d3fef85d80ce?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]
vuex基础入门的更多相关文章
- 前端vuex基础入门
		vuex简介 是一个专门为vue.应用程序开的状态管理模式 它采用集中式存储管理应用的所有组件的状态 (类似于全局变量) 并以相应的规则保证以一种可预测的方式发生改变(相应式变化) 应用场景 多个视图 ... 
- 零基础入门 实战mpvue2.0多端小程序框架
		第1章 课程快速预览(必看!!!)在这一章节中,老师讲带领你快速预览课程整体.其中,涉及到为什么要做这么一门实战课程.制作一个小程序的完整流程是怎么样的,以及如何做项目的技术选型. 第2章 30 分钟 ... 
- Vuex 基础
		其他章节请看: vue 快速入门 系列 Vuex 基础 Vuex 是 Vue.js 官方的状态管理器 在vue 的基础应用(上)一文中,我们已知道父子之间通信可以使用 props 和 $emit,而非 ... 
- js学习笔记:webpack基础入门(一)
		之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ... 
- 「译」JUnit 5 系列:基础入门
		原文地址:http://blog.codefx.org/libraries/junit-5-basics/ 原文日期:25, Feb, 2016 译文首发:Linesh 的博客:JUnit 5 系列: ... 
- .NET正则表达式基础入门
		这是我第一次写的博客,个人觉得十分不容易.以前看别人写的博客文字十分流畅,到自己来写却发现十分困难,还是感谢那些为技术而奉献自己力量的人吧. 本教程编写之前,博主阅读了<正则指引>这本入门 ... 
- 从零3D基础入门XNA 4.0(2)——模型和BasicEffect
		[题外话] 上一篇文章介绍了3D开发基础与XNA开发程序的整体结构,以及使用Model类的Draw方法将模型绘制到屏幕上.本文接着上一篇文章继续,介绍XNA中模型的结构.BasicEffect的使用以 ... 
- 从零3D基础入门XNA 4.0(1)——3D开发基础
		[题外话] 最近要做一个3D动画演示的程序,由于比较熟悉C#语言,再加上XNA对模型的支持比较好,故选择了XNA平台.不过从网上找到很多XNA的入门文章,发现大都需要一些3D基础,而我之前并没有接触过 ... 
- Shell编程菜鸟基础入门笔记
		Shell编程基础入门 1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail: ... 
随机推荐
- vs配置opencv(只需一次)
			一.配置环境变量(bin) 二.配置属性表 1.配置包含(include)目录 2.配置库(lib)目录 3.配置依赖项(.lib) 
- NSMutableArray 删除可变数组元素
			平时使用 NSMutableArray 中经常用到遍历删除数组元素的问题.一般第一个想法是使用一下 forin 就解决了,但是老司机都会知道使用 forin 做删除操作的时候会 crash.报错的原因 ... 
- 拓展 - Webrtc 的回声抵消(aec、aecm)算法简介
			webrtc 的回声抵消(aec.aecm)算法简介 原文链接:丢失.不好意思 webrtc 的回声抵消(aec.aecm)算法主要包括以下几个重要模块:1.回声时延估计 2.NLMS( ... 
- Iris Network Traffic Analyzer嗅探器
			网卡配置 ftp测试 
- Node: 通过Console打印日志 (Log Message via Console)
			In normal development, we are likely to use 'console.log' for message logging, yet it's simple, we a ... 
- MySQL Replication--半同步复制(Semi-Sync Replication)
			半同步复制 默认配置下,MYSQL主从库通过binlog来保持一致,主库事务提交后,将binlog日志写入磁盘,然后返回给用户,备库通过拉取主库的binlog来同步主库的操作,无法保证主备节点数据实时 ... 
- 五、Linux_ping命令
			ping命令用法为:“ping 参数 目标主机”.其中参数为零到多个,目标主机可以是IP或者域名. 1.每隔0.6秒ping一次,一共ping 5次: [root@aiezu.com ~]# ping ... 
- 整型 字符串方法 for循环
			整型 # 整型 -- 数字 (int) # 用于比较和运算的 # 32位 -2 ** 31 ~ 2 ** 31 -1 # 64位 -2 ** 63 ~ 2 ** 63 -1 # + - * / // ... 
- Typora 基础的使用方法
			大标题:通过ctrl + 数字 1 2 3 ....方式,还可以通过加# 的方式 一级标题 二级标题 三级标题 最多可以有6个#号 序号标题: 有序缩进是1. + tab 回车之后自动生成下一个序号 ... 
- Docker的系统资源限制及验正
			Docker的系统资源限制及验正 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.容器资源限制概述 1>.什么是"Limit a container's reso ... 
