Vuex 使用及简单实例(计数器)


Posted in Javascript onAugust 29, 2018

前一段时间因为需要使用vue,特地去学习了一下。但是时间匆忙vuex没有接触到,今天闲暇时看了解了一下vuex,并做了一个小demo,用于记录vuex的简单使用过程。

什么是Vuex?

vuex是专门为vue.js应用程序开发的一种状态管理模式,当多个视图依赖于同一个状态或是多个视图均可更改某个状态时,将共享状态提取出来,全局管理。

引入Vuex(前提是已经用Vue脚手架工具构建好项目)

1、利用npm包管理工具,进行安装 vuex。在控制命令行中输入下边的命令就可以了。

npm install vuex --save

要注意的是这里一定要加上 ?save,因为你这个包我们在生产环境中是要使用的。

2、新建一个store文件夹(这个不是必须的),并在文件夹下新建store.js文件,文件中引入我们的vue和vuex。

import Vue from 'vue';
import Vuex from 'vuex';

3、使用我们vuex,引入之后用Vue.use进行引用。

Vue.use(Vuex);

通过这三步的操作,vuex就算引用成功了,接下来我们就可以尽情的玩耍了。

4、在main.js 中引入新建的vuex文件

import storeConfig from './vuex/store'

5、再然后 , 在实例化 Vue对象时加入 store 对象 :

new Vue({
  el: '#app',
  router,
  store,//使用store
  template: '<App/>',
  components: { App }
 })

下面是一个计数器的例子

在src目录下创建一个store文件夹。

src/store.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
 state: {
 count: 0,
 show: ''
 },
 getters: {
 counts: (state) => {
  return state.count
 }
 },
 mutations: {
 increment: (state) => {
  state.count++
 },
 decrement: (state) => {
  state.count--
 },
 changTxt: (state, v) => {
  state.show = v
 }
 }
})

export default store

state就是我们的需要的状态,状态的改变只能通过提交mutations,例如:

handleIncrement () {
  this.$store.commit('increment')
 }

带有载荷的提交方式:

changObj () {
  this.$store.commit('changTxt', this.obj)
 }

当然了,载荷也可以是一个对象,这样可以提交多个参数。

changObj () {
  this.$store.commit('changTxt', {
   key:''
  })
 }

在main.js中引入store.js

import store from './store/store'
export default new Vue({
 el: '#app',
 router,
 store,
 components: {
 App
 },
 template: '<App/>'
})

在组件中使用

在组建可以通过$store.state.count获得状态

更改状态只能以提交mutation的方式。

<template>
<div class="store">
 <p>
 {{$store.state.count}}
 </p>
 <el-button @click="handleIncrement"><strong>+</strong></el-button>
 <el-button @click="handleDecrement"><strong>-</strong></el-button>
 <hr>
 <h3>{{$store.state.show}}</h3>
 <el-input
 placeholder="请输入内容"
 v-model="obj"
 @change="changObj"
 clearable>
 </el-input>
</div>
</template>
<script>
export default {
 data () {
 return {
  obj: ''
 }
 },
 methods: {
 handleIncrement () {
  this.$store.commit('increment')
 },
 handleDecrement () {
  this.$store.commit('decrement')
 },
 changObj () {
  this.$store.commit('changTxt', this.obj)
 }
 }
}
</script>

到这里这个demo就结束了,

Vuex 使用及简单实例(计数器)

感觉整个个过程就是一个传输数据的过程,有点类似全局变量,但是vuex是响应式的。

这里当然并没有完全发挥出全部的vuex,

vuex还在学习中,写这篇文章主要是记录其简单的使用过程。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js限制文本框为整数和货币的函数代码
Oct 13 Javascript
为超链接加上disabled后的故事
Dec 10 Javascript
jquery 定位input元素的几种方法小结
Jul 28 Javascript
jQuery制作可自定义大小的拼图游戏
Mar 30 Javascript
使用Javascript写的2048小游戏
Nov 25 Javascript
node.js中的事件处理机制详解
Nov 26 Javascript
深入理解vue $refs的基本用法
Jul 13 Javascript
微信小程序之发送短信倒计时功能
Aug 30 Javascript
vue2里面ref的具体使用方法
Oct 27 Javascript
vue 实现的树形菜的实例代码
Mar 19 Javascript
bing Map 在vue项目中的使用详解
Apr 09 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
Dec 30 Javascript
浅谈Vue.use的使用
Aug 29 #Javascript
微信小程序支付前端源码
Aug 29 #Javascript
微信小程序使用swiper组件实现类3D轮播图
Aug 29 #Javascript
javascript中UMD规范的代码推演
Aug 29 #Javascript
详解webpack自定义loader初探
Aug 29 #Javascript
在vue中使用SockJS实现webSocket通信的过程
Aug 29 #Javascript
微信小程序自定义select下拉选项框组件的实现代码
Aug 28 #Javascript
You might like
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
js中replace的用法总结
2013/12/27 Javascript
javascript快速排序算法详解
2014/09/17 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
详解jenkins自动化部署vue
2019/05/14 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
python并发编程之线程实例解析
2017/12/27 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
virtualenv 指定 python 解释器的版本方法
2018/10/25 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
波兰最早的运动鞋精品店之一:Street Supply
2019/08/29 全球购物
.NET面试题:什么是反射
2016/09/30 面试题
大学生毕业自我评价范文分享
2013/11/07 职场文书
品管员岗位职责
2013/11/10 职场文书
设计专业自荐信
2014/06/19 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
学习党章的体会
2014/11/07 职场文书
领导干部考核评语
2015/01/04 职场文书
七年级上册语文教学计划
2015/01/22 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
新党员入党决心书
2015/09/22 职场文书
情况说明书怎么写
2015/10/08 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书
话题作文之诚信
2019/11/28 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python