vuex基础语法、state代码示例、mutations代码示例

本文主要是介绍vuex基础语法、state代码示例、mutations代码示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、vuex基础语法

1.简介

Vuex 是一个专为 Vue.js 应用程序开发的状态(数据)管理模式。

简单来说就是方便管理管理组件之间的数据共享,原来我们那种父传子、子传父、兄弟组件传值的方式在小型项目中还能应付过来,如果是项目比较复杂,还是建议使用vuex使用数据共享。

2.基础使用步骤

vuex的使用步骤如下:

1.安装vuex

npm install vuex --save

2.导入vuex

import Vuex from 'vuex'
Vue.use(Vuex)

3.创建store对象

state中就是全局共享的数据4

const store=new Vuex.Store({state:{count:0;}
})

4.把store对象挂载到vue实例中

new Vue({el:"#app",render:h=>h(app),router,store
})

备注 我们创建一个练习项目文件夹,注意配置的时候选择安装vuex即可,它会自动生成store文件夹,里面的index.js就是存储的核心文件。

3.state设置共享数据

组件中使用共享数据的语法1:

this.$store.state.数据变量名

组件中使用共享数据的语法2:

import {mapState} from 'vuex'  导入mapState函数把全局state中的数据映射为当前组件的计算属性
computed:{...mapState(['变量名'])
}

 

4.mutations定义修改数据方法 

组件要修改数据建议用mutations

vuex中不建议子组件直接修改全局的store中的共享数据,所以我们要是想修改数据的时候建议使用mutations,便于统一管理。

mutations中定义处理逻辑的方法

export default new Vuex.Store({state: {num: 0},mutations: {方法名(state) {//对于数据的处理逻辑//其中方法中的state形参就是上面的state共享数据对象;}},actions: {},modules: {}
});

组件中通过methods中的方法调用mutations中的方法

methods: {this.$store.commit('方法名')}

二、state代码示例 

初始化一个测试项目demo1,注意安装vuex

components中新建两个子组件Son1.vue和Son2.vue

App.vue中引入两个子组件并注册

<template><div id="app"><Son1></Son1><Son2></Son2></div>
</template><script>
import Son1 from "./components/Son1.vue";
import Son2 from "./components/Son2.vue";export default {name: "App",components: {Son1,Son2}
};
</script>
  • store/index.js新建公共的数据模型
export default new Vuex.Store({state: {num: 0},。。。
});
  • 方式1引入公共数据 Son1.vue中使用num
<template><div>子组件1<p>{{$store.state.num}}</p></div>
</template>
  • 方式2引入公共数据
<!-- 子组件1 -->
<template><div>子组件1<p>{{num}}</p></div>
</template><script>
import { mapState } from "vuex";
export default {data() {return {};},computed: {...mapState(["num"])}
};
</script>

同理,Son2.vue也是如此使用。 

三、mutations代码示例

1.mutations第一种使用方式

store/index.js中定义如下:

import Vue from "vue";
import Vuex from "vuex";Vue.use(Vuex);export default new Vuex.Store({state: {num: 0},mutations: {addHandle(state) {state.num++;},addHandle2(state, arg) {state.num += arg;}},actions: {},modules: {}
});

Son1.vue中调用如下:

<!-- 子组件1 -->
<template><div>子组件1<button @click="clickHandle">点击增加1</button><button @click="clickHandle2">点击传递参数</button><p>{{$store.state.num}}</p></div>
</template><script>
export default {data() {return {};},methods: {clickHandle: function() {this.$store.commit("addHandle");},clickHandle2: function() {this.$store.commit("addHandle2", 2);}}
};
</script>

 此时Son1.vue中点击按钮1,页面显示的数字就会增加1,点击按钮2,页面显示的数字就会增加2.

2.mutations第二种使用方式

store/index.js中定义如下:

import Vue from "vue";
import Vuex from "vuex";Vue.use(Vuex);export default new Vuex.Store({state: {num: 0},mutations: {addHandle(state) {state.num++;},addHandle2(state, arg) {state.num += arg;}},actions: {},modules: {}
});

Son1.vue中调用如下:

<!-- 子组件1 -->
<template><div>子组件1<button @click="clickHandle">点击增加1</button><button @click="clickHandle2">点击传递参数</button><p>{{$store.state.num}}</p><!-- <p>{{num}}</p>  --></div>
</template><script>
import { mapMutations } from "vuex";
export default {data() {return {};},methods: {...mapMutations(["addHandle", "addHandle2"]),clickHandle: function() {this.addHandle();},clickHandle2: function() {this.addHandle2(2);}}
};
</script>

这篇关于vuex基础语法、state代码示例、mutations代码示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/569797

相关文章

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

Java高效实现PowerPoint转PDF的示例详解

《Java高效实现PowerPoint转PDF的示例详解》在日常开发或办公场景中,经常需要将PowerPoint演示文稿(PPT/PPTX)转换为PDF,本文将介绍从基础转换到高级设置的多种用法,大家... 目录为什么要将 PowerPoint 转换为 PDF安装 Spire.Presentation fo

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工