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: ...
随机推荐
- SSM前后端分离 ssm+html+js(ajax) 这种controll层的返回值是结合或者网址
提示: 1.单表查询多条数据用 list<实体类名字> mapper层 1.1单表查询单条数据用 对象 2.两表关联查多条 list<map<String,Object> ...
- asp.net core 之中间件
Http请求资源的过程可以看成一个管道:“Pipe”,并不是所有的请求都是合法的.安全的,其于功能.性能或安全方面的考虑,通常需要在这管道中装配一些处理程序来筛选和加工这些请求.这些处理程序就是中间件 ...
- C# vb .net实现圆角矩形特效滤镜
在.net中,如何简单快捷地实现Photoshop滤镜组中的圆角矩形效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...
- C# vb .net实现旋转特效滤镜
在.net中,如何简单快捷地实现Photoshop滤镜组中的旋转特效呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步 ...
- Navicat 导出 表结构
Navicat 导出 表结构 转自:https://www.cnblogs.com/xianxiaobo/p/10254737.html 1. 首先点击新建查询,然后输入下面的语句 SELECT CO ...
- feign.FeignException: status 400 reading
feign.FeignException: status 400 reading : 请求方调用报错: 服务方被调用报错: 用fegin给redis设置缓存时报错,刚好 卡到8k这个临界点 ,就一直报 ...
- mac上使用git命令上传项目工程源码至Github/gitee
原文连接:(http://www.studyshare.cn/blog/details/1164/0 ) 一.安装git工具 1.官网下载地址:点击下载 安装步骤略,mac安装工具双击拖动即可. 2 ...
- 供应链管理如何提高效率?APS系统成优化引擎
APS系统,虽然它的起兴只有短短的十几年,但是在这段时间里面,它为很多企业解决了很多人工手动.脑力不可解决的问题. 所以APS被誉为供应链优化引擎,APS常常被称为高级计划与排程,但也有称为高级计划系 ...
- 在地址栏里输入一个 URL后,按下 Enter 到这个页面呈现出来,中间会发生什么?
这是一个面试高频的问题 在输入 URL 后,首先需要找到这个 URL 域名的服务器 IP,为了寻找这个 IP,浏览器首先会寻找缓存,查看缓存中是否有记录,缓存的查找记录为:浏览器缓存 ->系统缓 ...
- GDI显示图像时设定窗口大小为图像大小
先前已经能基于GDI显示png图像,但是窗口大小和图像尺寸并不一致.注意到opencv中的imshow的窗口和图像尺寸一致,这里进行设置. 原理 CreateWindow阶段并不能确定窗口大小,但是在 ...