iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vuex的安装、搭建及案例详解
  • 803
分享到

Vuex的安装、搭建及案例详解

2024-04-02 19:04:59 803人浏览 安东尼
摘要

目录前言Vuex原理讲解 1、安装vuex组件2、使用Vuex求和案例Coute.vuestore.jsActions Mutationsgetters的使用:s

前言

本文讲诉了Vuex的安装、搭建。以及Actions、Mutations、State、Getters的使用,为什么使用mapState、mapGetters以及一些细节的解释

Vuex原理讲解 

Actions:词义是 动作行为

Mutations:词义是加工、维护

State:词义是 状态和数据

Dispatch:词义是派遣、发出

Commit:提交

Render: 渲染

Mutate:转变

从这些单词中,大体上可以概括整个图的流程。

VC派发(Dispatch)消息到Actions,Actions提交(Commit)到Mutation,Mutation转变(Mutate)state,然后重新渲染整个页面。

1、安装vuex组件

注意:vue3只能用vuex4版本,vue2只能用vuex3版本。2022年2月7日之后,vue3成了默认版本,vuex4相应的也成了默认版本。所以对于vue2,要注明vuex的版本 @3

在package.JSON里看到vuex就说明安装成功了

2、使用Vuex

首先需要创建一个Store。

在Src中,创建一个名为store的文件夹,里面包含一个index.js的文件

 由上面那个原理图可以看出来,store里面至少包含Actions,Mutations,State。

如下图

(创建Store实例,需要用到Vuex.Store所以需要引用Vuex)

Vue.use(Vuex)的作用就是让vue承认store这个属性,否则初始化Vc的时候,vue不会解析store这个属性

main.js配置如下

 其中store相当于store:store。根据ES6语法规则,如果key和value一样,可以简写成key的形式

import Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
import store from './store'
new Vue({
  render: h => h(App),
  store
}).$mount('#app')

这样Vuex的架子就搭好了,实战演练一下,并借此机会深入的介绍一下Vuex里面的属性。

求和案例

流程讲解:点击button按钮,触发点击事件,派发消息去Actions里面找addSum,并且携带参数1。在Actions里面,接受参数,向Mutation提交,携带参数1。Mutation里改变state里的sum的值,vue检测到sum改变,重新渲染整个页面。

效果图:

Coute.vue

<template>
    <div>
        <h1>当前的值是:{{sum}}</h1>
        <button @click="addSum">点我加1</button>
        <button>点我减1</button>
    </div>
</template>
 
<script>
export default {
    name:"Coute",
    methods:{
        addSum()
        {
            this.$store.dispatch('addSum',1);
        }
    },
    computed:{
        sum()
        {
            return this.$store.state.sum;
        }
    }
}
</script>
 
<style>
    button{
        margin-right: 2px;
    }
</style>

store.js

import Vuex from 'vuex'
import Vue from 'vue'
Vue.use(Vuex)
const state = {
    sum:1
};
const mutations={
    ADDSUM(state,value)
    {
        state.sum+=value;
    }
};
const actions={
    addSum(context,value)
    {
        context.commit('ADDSUM',value);
    }
};
export default new Vuex.Store({
    state,
    mutations,
    actions
})

详细看一下Action和Mutations里面的可以携带参数

Actions

设置四个参数,并打印一下。

结果只输出了两个参数,第一个参数是一个对象,里面包含了commit,dispatch等属性,第二个参数就是要携带的值;

其中第二个参数叫做value,第一个参数通常叫做Context,里面最常用的是Commit。如果只想获得Commit也可以写成这种形式

 Mutations

同样Mutations里面也是只有两个参数,其中第一个是state(看到了sum),第二个就是携带的、值。Mutations最大的作用就是可以改变state的值。 

疑问:为什么需要一个Actions,求和案例之中,我把参数传给Actions,Actions原封不动的又传给了Mutations,为什么我不直接传给Mutations呢?

答:确实是这样子。如果参数确定的话,可以跳过Actions,直接commit到Mutations里面。但是如果参数不确定的话,比如我需要向服务器要数据,这时候就必须用到Actions发送ajax

getters的使用:

如果多个组件都用到一个对state里数据处理过的值,比如求和案例中sum的20倍。通过getters仅处理一次,就可以让多个组件同时使用。

store

import Vuex from 'vuex'
import Vue from 'vue'
Vue.use(Vuex)
const state = {
    sum:1
};
const mutations={
    ADDSUM(state,value)
    {
         state.sum+=value
    }
};
const actions={
    addSum({commit},value)
    {
         commit('ADDSUM',value)
    }
};
const getters = {
    bigSum(state)
    {
        return state.sum*20
    }
}
export default new Vuex.Store({
    state,
    mutations,
    actions,
    getters
})

Store仓库数据的使用:

现在我们有多个数据,怎么样在任意组件里面访问的到呢?为了表现出组件之间的通信。新建一个组件InfORMation

答案就是在Computed里面获得

<template>
  <div>
      <h1>姓名:{{name}}</h1>
      <h1>学校:{{school}}</h1>
      <h1>爵位:{{Marquis}}</h1>
  </div>
</template>
 
<script>
export default {
    name:'Information',
    computed:{
        school()
        {
            return this.$store.state.school;
        },
        sum()
        {
            return this.$store.state.sum;
        },
        name()
        {
            return this.$store.state.name;
        },
        Marquis()
        {
            return this.$store.state.Marquis;
        }
    }
}
</script>
 
<style>
 
</style>

效果图

GetState 的引入

由上图所示,这样一个一个的写,虽然可以写出来,但是实在是太麻烦了。干的都是一样的工作。所以Vue给我们提供了一个方法。mapState和mapGetters。这两个一个是简化State里的属性,一个是简化getters里面的属性。

第一种方法可以简写成下面这种形式。(对象写法。函数的名字可以随意)

 为什么要用...mapState。 原因:mapState报错

 为什么报错呢?

输出一下mapState()来看看。

 mapState里面是一个对象。computed本身也是一个对象。{}里面再加一个{},是肯定会报错的。 那为什么用...呢,es6用法中,一个对象t1,一个对象t2,t1{...t2}就相当于,把t2中的属性全拿出来一个个放到t1里面。

第二种方法:数组方法(state里面的属性是什么就必须写什么)

 效果都是可以的

mapGetters同理,就不赘述了 

【错误示范--使用Vuex时】

Vue.use(Vuex)在main.js里面使用

main.js

import Vue from 'vue'
import App from './App.vue'
import Vuex from 'vuex'
Vue.use(Vuex)
Vue.config.productionTip = false
import store from './store'
new Vue({
  render: h => h(App),
  store
}).$mount('#app')
import Vuex from 'vuex'
 
const state = {
   
};
const mutations={
    
};
const actions={
    
};
const getters = {
    
}
export default new Vuex.Store({
    state,
    mutations,
    actions,
    getters
})

你发现报了一个这样的错误(Vue.use(Vuex)应该在创建store之前执行),然后仔细检查了一遍,确认Vue.use(Vuex)写在了引入store之前。为什么还报错呢?这里我想说的就是Vue在解析代码的时候,会按顺序首先执行所有的import的语句,所以Vue.use(Vuex)只能写在store里面

【报错】

 语法校验不过关,在vue.config.js加上这句lintOnSave:false(关闭语法校验)

总结

到此这篇关于Vuex安装搭建及案例详解的文章就介绍到这了,更多相关Vuex详解内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vuex的安装、搭建及案例详解

本文链接: https://www.lsjlt.com/news/149486.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vuex的安装、搭建及案例详解
    目录前言Vuex原理讲解 1、安装vuex组件2、使用Vuex求和案例Coute.vuestore.jsActions Mutationsgetters的使用:s...
    99+
    2024-04-02
  • Vue Vuex搭建vuex环境及vuex求和案例分享
    目录Vuex介绍概念何时使用多个组件需要共享数据时求和案例–纯vue版搭建vuex环境求和案例–vuex版一些疑惑和问题Vuex介绍 概念 在 Vue 中实现...
    99+
    2024-04-02
  • Vuex总体案例详解
    目录一、简介二、优点三、使用步骤1.安装Vuex2.引用Vuex3.创建仓库Store四、包含模块1.State2.Getters3.Mutations4.Action5.Modul...
    99+
    2024-04-02
  • Java sdk安装及配置案例详解
    1.安装Java SDK开发环境。 首先去官网下载Java SDK,http://www.oracle.com/technetwork/java/javase/downloads/j...
    99+
    2024-04-02
  • Vue 搭建Vuex环境详解
    目录搭建Vuex环境总结 搭建Vuex环境 在src目录下创建一个文件夹store,在store文件夹内创建一个index.js文件 index.js用于创建Vuex中最核心的sto...
    99+
    2024-04-02
  • Vue Vuex搭建vuex环境及vuex求和的方法
    今天小编给大家分享一下Vue Vuex搭建vuex环境及vuex求和的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-06-30
  • Java Apollo环境搭建以及集成SpringBoot案例详解
    环境搭建 下载Quick Start安装包 从Github下载:checkout或下载apollo-build-scripts项目 手动打包Quick Start安装包 ...
    99+
    2024-04-02
  • Mac node删除以及重新安装案例详解
    Mac node 删除 重新安装 删除 node -v sudo npm uninstall npm -g sudo rm -rf /usr/local/lib/node ...
    99+
    2024-04-02
  • JavaScript axios安装与封装案例详解
    1.下载axios插件 cnpm install axios -S 2.在main.js引入axios import axios from 'axios' Vue.prot...
    99+
    2024-04-02
  • springcloud3Sentinel的搭建及案例操作方法
    目录一 sentinel的概念1.1 sentinel二 sentinel的安装2.1 sentinel的安装三   sentinel的各种用途3.1 实时监控3...
    99+
    2023-01-28
    springcloud3 Sentinel搭建 springcloud Sentinel
  • vuex安装失败解决的方法实例
    目录1、报错信息:2、解决方案使用小案例:定义一个加减的按钮总结1、报错信息: npm ERR! code ERESOLVEnpm ERR! ERESOLVE unable to r...
    99+
    2024-04-02
  • kali安装docker及搭建漏洞环境的详细教程
    目录前言:docker的简介安装docker1. 在kail环境下搭建docker,kali版本要在3.10以上,使用命令查看kali内核2. 添加添加Docker官方的GPG密钥3...
    99+
    2024-04-02
  • MyBatisPlus的简介及案例详解
    目录一、MyBatisPlus简介二、MyBatisPlus入门案例1、创建数据库及表2、创建SpringBoot工程3、勾选配置使用技术4、pom.xml补全依赖5、添加MP的相关...
    99+
    2024-04-02
  • Anaconda安装、源配置、虚拟环境搭建、及Python常用软件安装详解(详细教程)
    首先先介绍一下各种安装软件的基本介绍和常见命令     基本介绍:         Anaconda:是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学...
    99+
    2023-09-13
    python 开发语言
  • 安装node.js以及搭建vue项目过程中遇到的问题详解
    目录一、node.js安装二、如何找node.js历史版本1.点击DOWNLOADS2.点击页面下方3.翻页找到历史版本三、检查是否安装成功?四、安装成功后需要配置环境变量:五、环境...
    99+
    2024-04-02
  • VMware17虚拟机安装及Linux系统搭建(详细版)
    ✅作者简介:大家好,我是小杨 📃个人主页:「小杨」的csdn博客 🐳希望大家多多支持🥰一起进步呀! 📜前言: VMware是一...
    99+
    2023-09-09
    linux 服务器 运维
  • Jmeter环境搭建及安装步骤
    Jmeter是纯Java开发的, 能够运行Java程序的系统一般都可以运行Jmeter, 如:Windows、 Linux、 mac等。 由于是由Java开发,所以自然需要jdk环境...
    99+
    2024-04-02
  • mysql 8.0.18 mgr搭建及其切换功能的案例
    这篇文章将为大家详细讲解有关mysql 8.0.18 mgr搭建及其切换功能的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、系统安装包yum -y&nb...
    99+
    2024-04-02
  • vuex安装和新建项目的步骤
    这篇文章主要讲解了“vuex安装和新建项目的步骤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vuex安装和新建项目的步骤”吧!第零步新建一个vue项目,安...
    99+
    2024-04-02
  • 搭建虚拟机Macos及安装XCode(问题解决)
    前言:安装Mac虚拟机的过程中遇到了一系列的问题,接下来将按照安装流程阐述每个步骤中所遇难题及相应的解决方法(电脑系统是Win11)。 1.下载安装所需文件,安装并解锁unlocker 首先按照教程技能 | Win10系统安装苹果Mac虚拟...
    99+
    2023-10-05
    macos
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作