博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue状态管理(vuex)
阅读量:4952 次
发布时间:2019-06-11

本文共 1988 字,大约阅读时间需要 6 分钟。

vuex,官方定义为状态管理,其实这个状态管理,和H5本地缓存的作用很相似,通俗的讲,就是存储一些公用的东西,提供给各个组件使用,和服务器端的session功能也很类似。

不同的是,vuex在刷新页面的时候,会自动还原到初始的状态,话不多说,我们直接上干货:

1.安装vuex:npm install vuex --save

2.需要在man.js中引用如下代码

import Vue from 'vue'import App from './App'import router from './router'import vuex from 'vuex'Vue.config.productionTip = falseVue.use(vuex)new Vue({  el: '#app',  router,  components: { App },  template: '
'})

 

3.在根目录下新建vuex文件加,新建文件store.js,在js文件中,写如下代码:

import vue from 'vue'import Vuex from 'vuex'vue.use(Vuex)const state={    count:1}const mutations={    add(state){        state.count++;    },    reduce(state){        state.count--;    }}export default new Vuex.Store({    state,mutations})

说明:count:1是一个状态管理的属性,这里你可以设置自己的属性,例如:loginstate:object

const mutations是一个固定的写法,这里的作用是修改state中的属性,如count,里面的方法可以自己的定义. 若要传参的话,只能传递一个参数,如:
add(state){        state.count++;    }方法,如果要传递参数,只能传递一个参数写成:
add(state,parameters){       ....    }

4.前端调用:

4.1在页面引用vuex,

import store from "@/vuex/store";
在选项中申明一下store
代码如下:
export default {  name: "HelloWorld",  data() {    return {      msg: "Welcome to Your Vue.js App"    };  },  store,  computed: {    },  methods: {     }

4.2在页面中使用store,

方式一:

{
{$store.state.count}}
方式二:
如觉得方式一的写法不太好看,比较长,可以在computed中做如下操作:
computed: {    computedcount() {      return this.$store.state.computedcount;    }}

这样就可以在页面中直接调用{

{computedcount}}

方式三:

也可以引用vuex里的

mapState
引用方式如下:
import { mapState} from "vuex";

然后可以在computed中做如下操作:

...mapState({      mapcount: state => state.mapcount    }),    ...mapState(["mapcount"]),

这两种写法都可以,页面使用的时候,直接{

{mapcount}}

5.修改状态

修改状态,需要使用commit,以上代码中已经写好了添加和减少的方法,可以有两种方式进行操作:

方式一:

<button @click="$store.commit('add')">相加</button>
<button @click="$store.commit('reduce')">相减</button>
方式二:
<button @click="add()">Mutaions传参相减</button>
方式二需要引用mapMutations,应用方式如下:
import { mapMutations } from "vuex";
然后在选项:
methods中写如下代码:
...mapMutations([
“add”
])
以上就是vuex的基本使用了,剩下还有一些选项,如果弄清楚了以上这些,剩下的也不是什么问题了

转载于:https://www.cnblogs.com/PiaoYu/p/11437582.html

你可能感兴趣的文章
ResultSet 可滚动性和可更新性
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
LUOGU P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat…
查看>>
toad for oracle中文显示乱码
查看>>
scala的REPL shell的调用
查看>>
SQL中Group By的使用
查看>>
错误org/aopalliance/intercept/MethodInterceptor解决方法
查看>>
Pylint在项目中的使用
查看>>
使用nginx做反向代理和负载均衡效果图
查看>>
access remote libvirtd
查看>>
(4) Orchard 开发之 Page 的信息存在哪?
查看>>
ASP.NET中 GridView(网格视图)的使用前台绑定
查看>>
图像加载
查看>>
关于zxing生成二维码,在微信长按识别不了问题
查看>>
Haskell学习-高阶函数
查看>>
手动通知扫描SD卡主动生成缩略图
查看>>
js中tagName和nodeName
查看>>
PC-XP系统忘记密码怎么办
查看>>
Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)
查看>>
深入了解Oracle ASM(二):ASM File number 1 文件目录
查看>>