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 相关文章推荐
csdn 博客的css样式 v3
Feb 24 Javascript
javascript中用星号表示预录入内容的实现代码
Jan 08 Javascript
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
Jun 27 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
Jul 14 Javascript
js解决select下拉选不中问题
Oct 14 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
Mar 25 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
基于Vue.js实现数字拼图游戏
Aug 02 Javascript
炫酷的js手风琴效果
Oct 13 Javascript
实例讲解javascript实现异步图片上传方法
Dec 05 Javascript
vue-router 起步步骤详解
Mar 26 Javascript
JavaScript 作用域scope简单汇总
Oct 23 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
在数据量大(超过10万)的情况下
2007/01/15 PHP
php daodb插入、更新与删除数据
2009/03/19 PHP
php随机显示图片的简单示例
2014/02/15 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
php生成HTML文件的类方法
2019/10/11 PHP
javascript取消文本选定的实现代码
2010/11/14 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
vue中的使用token的方法示例
2020/03/10 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
Python的类实例属性访问规则探讨
2015/01/30 Python
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
致短跑运动员广播稿
2014/01/09 职场文书
宿舍违规检讨书
2014/01/12 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
物控部经理职务说明书
2014/02/25 职场文书
元旦联欢会感言
2014/03/04 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
作风建设整改方案
2014/10/27 职场文书
先进个人评语大全
2015/01/04 职场文书
党支部考察意见范文
2015/06/02 职场文书
JavaScript的function函数详细介绍
2021/11/20 Javascript