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 相关文章推荐
学习YUI.Ext 第二天
Mar 10 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
Dec 02 Javascript
jQuery 性能优化手册 推荐
Feb 23 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
Feb 11 Javascript
JQuery获取各种宽度、高度(format函数)实例
Mar 04 Javascript
jquery实现更改表格行顺序示例
Apr 30 Javascript
实例解析jQuery中proxy()函数的用法
May 24 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
Sep 08 Javascript
原生JS封装animate运动框架的实例
Oct 12 Javascript
小程序自定义组件实现城市选择功能
Jul 18 Javascript
vue中使用腾讯云Im的示例
Oct 23 Javascript
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
浅谈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和MySql中计算时间差的方法
2011/04/22 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
jquery 事件对象属性小结
2010/04/27 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
2019/03/06 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
python去掉字符串中重复字符的方法
2014/02/27 Python
Python Requests 基础入门
2016/04/07 Python
python安装与使用redis的方法
2016/04/19 Python
python字符串,数值计算
2016/10/05 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
大学生个人自荐信样本
2014/03/02 职场文书
关于安全的演讲稿
2014/05/09 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
趣味运动会广播稿
2014/09/13 职场文书
慰问信格式规范
2015/03/23 职场文书
事业单位岗位说明书
2015/10/08 职场文书
《三国志》赏析
2019/08/27 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL