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 相关文章推荐
javascript下阻止表单重复提交、防刷新、防后退
Aug 17 Javascript
jquery 可拖拽的窗体控件实现代码
Mar 21 Javascript
js运动动画的八个知识点
Mar 12 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
Aug 11 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
Jul 28 Javascript
基于js 字符串indexof与search方法的区别(详解)
Dec 04 Javascript
通过一次报错详细谈谈Point事件
May 17 Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 Javascript
Js中使用正则表达式验证输入是否有特殊字符
Sep 07 Javascript
Node爬取大批量文件的方法示例
Jun 28 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
Oct 23 jQuery
JS操作字符串转数字的常见方法示例
Oct 29 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
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
php生成无限栏目树
2017/03/16 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
js转义字符介绍
2013/11/05 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
Python编程实现蚁群算法详解
2017/11/13 Python
python实现文本界面网络聊天室
2018/12/12 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
Python 文件数据读写的具体实现
2020/01/24 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
python如何控制进程或者线程的个数
2020/10/16 Python
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
自我评价范文
2013/12/22 职场文书
最新创业融资计划书
2014/01/19 职场文书
暑期研修感言
2014/02/17 职场文书
教师考核材料
2014/05/21 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
财务部岗位职责
2015/02/03 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL