vue(22)Vuex的安装与使用

vue(22)Vuex的安装与使用前言每一个Vuex应用的核心就是store(仓库)。store基本上就是一个容器,它包含着你的应用中大部分的状态(state)。Vuex和单纯的全局对象有以下两点不同:Vuex的状态存

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

每一个 Vuex 应用的核心就是 store(仓库)。store基本上就是一个容器,它包含着你的应用中大部分的状态 (state)Vuex 和单纯的全局对象有以下两点不同:

  1. Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。
  2. 你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。
     

Vuex的安装

安装通过NPM命令:

npm install vuex --save

在一个模块化的打包系统中,您必须显式地通过 Vue.use() 来安装 Vuex

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

如果我们使用vue-cli创建项目并选择配置了Vuex,那么项目会自动给我们配置好这些
 

Vuex的简单示例

安装 Vuex 之后,我们需要在某个地方存放我们的Vuex代码
这里我们先创建一个文件夹store,并且在其中创建一个index.js文件,在文件中写入如下代码

import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    counter: 1000,
  },
  mutations: {
    increment(state) {
      state.counter++;
    },
    decrement(state) {
      state.counter--;
    },
  },
});

其次,我们让所有的Vue组件都可以使用这个store对象,来到main.js文件中,导入store对象,并且放在new Vue中,这样其他Vue组件中,我们就可以通过this.$store的方式,获取到这个store对象

import Vue from "vue";
import App from "./App.vue";
import store from "./store";

new Vue({
  store,
  render: (h) => h(App),
}).$mount("#app");

然后在App.vue中写入如下代码:

<template>
  <div id="app">
    <h2>{{ $store.state.counter }}</h2>
    <button @click="addMethod">+</button>
    <button @click="reduce">-</button>
  </div>
</template>

<script>
export default {
  name: "App",
  methods: {
    addMethod() {
      this.$store.commit("increment");
    },
    reduce() {
      this.$store.commit("decrement");
    },
  },
};
</script>
<style lang="scss"></style>

 

Vuex使用步骤总结

  • 1.提取一个公共的store对象,用于保存多个组件中共享的状态

  • 2.将store对象放置在new Vue对象中,这样可以保证在所有的组件中都可以用到

  • 3.在其他组件中使用store对象中保存的状态即可

    • 通过this.$store.state属性的方式来访问状态
    • 通过this.$store.commit("mutations中的方法")来修改状态
  • 注意事项

    • 我们是通过提交mutations的方式,而非直接改变store.state.counter
    • 这是因为Vuex可以更明显的追踪状态的变化,所以不要直接改变store.state.counter的值
       
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165371.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 天猫送给这些商家“首页置顶”丨 24张PPT详解天猫消费电子2018年商家策略

    天猫送给这些商家“首页置顶”丨 24张PPT详解天猫消费电子2018年商家策略

    2022年4月2日
    61
  • ESP-Drone开源 Wi-Fi 无人机固件首次编译与错误排查

    ESP-Drone开源 Wi-Fi 无人机固件首次编译与错误排查**ESP-Drone原名ESP-Plane***代码仓库:[esp-drone](https://github.com/espressif/esp-drone)*中文文档:[gettingstarted](https://docs.espressif.com/projects/espressif-esp-drone/zh_CN/latest/index.html)*展示视频:[安装与试飞](https://b23.tv/hnLq8Z)

    2022年8月15日
    7
  • 最全面的IGMP协议总结[通俗易懂]

    最全面的IGMP协议总结[通俗易懂]一、IGMP简介IGMP(InternetGroupManagementProtocol)互联网组管理协议是TCP/IP协议族中负责IP组播成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。到目前为止,IGMP有三个版本:IGMPv1(由RFC1112定义) IGMPv2(…

    2022年9月14日
    0
  • 2020年前端面试题及答案_结构化面试题库及答案

    2020年前端面试题及答案_结构化面试题库及答案1、javascript基本数据类型?string、number、null、underfined、booleanobject是所有对象的父对象。2、浅谈javascript中变量和函数声明的提升?变量和函数声明的提升会被提升到最顶部去执行;函数的提升高于变量的提升;如果在函数内部用var声明了与外部相同的变量,则不向下寻找;匿名函数不会被提升;不同块中互不影响。3、什么是闭包?闭包有什么特性?闭包就是能够读取其他函数内部变量的函数。闭包的特性:函数内部可以嵌套函数;内部函数可以直接

    2022年8月27日
    7
  • 临时表创建_临时表的创建方式

    临时表创建_临时表的创建方式临时表创建//Anhighlightedblock两种临时表的语法:createglobaltemporarytable临时表名oncommitpreserve|deleterows用preserve时就是SESSION级的临时表,用delete就是TRANSACTION级的临时表一、SESSION级临时表1、建立临时表Sql代码createglobal…

    2025年6月30日
    3
  • 程序员周六给心爱的“她”放电的动人故事「建议收藏」

    文章目录0x000x010x020x030x040x00注:此文是一篇流水扯淡文,我和她的故事。你的她还好吗?你有没有遇到过喜欢的她,昨天对你还眉开目笑,含情脉脉,今天就爱搭不理,毫无兴趣。不管你有没有遇到,反正我遇到了。我说的她不是你想的她,我说的她是有着15.6寸1080P超清的容颜的我的“acer 笔记本”。前段时间刚刚换的新的电池,然而今天一拔掉电源线,她就自动关机,根据不给我一点点面子,让我倍感无奈和忧伤~今天是周六,没有“Jack 马”口中福报的我,这一天本该是简单且充实的一天,

    2022年3月1日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号