iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue中的vuex是什么意思
  • 647
分享到

vue中的vuex是什么意思

2023-06-22 07:06:14 647人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关Vue中的vuex是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。概念    Vuex 是一个专为 vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的

这篇文章将为大家详细讲解有关Vue中的vuex是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

概念

    Vuex 是一个专为 vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

安装

  1. html 中使用 script 标签引入

<script src="vue.js"></script><script src="vuex.js"></script>
  1. Vue项目中使用 npm 下载安装(需要安装 node 环境)

// 下载npm install vuex --save// 安装import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)

Vuex 图示

vue中的vuex是什么意思

Vuex 和单纯的全局对象有以下两点不同:

  • Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。

  • 不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。

Store

    每一个 Vuex 应用的核心就是 store(仓库)。“store” 基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。

State

    驱动应用的数据源,用于保存所有组件的公共数据.。

Getter

    可以将 getter 理解为 store 的计算属性, getters 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。

Mutation

    mutations 对象中保存着更改数据的回调函数,该函数名官方规定叫 type, 第一个参数是 state, 第二参数是payload, 也就是自定义的参数。mutation 必须是同步函数。mutations 对象里的方法需要使用 store.commit 调用

Action

    Action 提交的是 mutation 而不是直接变更状态。action 可以包含任意异步操作。actions 对象里的方法需要使用 store.dispatch 调用。

    Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,因此你可以调用 context.commit 提交一个 mutation,或者通过 context.state 和 context.getters 来获取 state 和 getters。

Module

    由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割。

HTML中 vuex 的使用

<body><p id="app">    <input type="button" value="+" @click="add">    {{this.$store.state.count}}    <input type="button" value="-" @click="reduce">    {{this.$store.getters.synchro}}    <input type="button" value="改变为10" @click="changeNum"></p><script src="vue.js"></script><script src="vuex.js"></script><script>    var store = new Vuex.Store({        state: {            count: 0        },        getters: {            synchro(state) {                return state.count            }        },        mutations: {               increment(state) {                state.count++            },            inreduce(state) {                state.count--            },            inchange(state, num) {                state.count = num            }        },        actions: {            change(context, num) {                context.commit('inchange', num)            }        }    })    new Vue({        el: '#app',        store,        methods: {            add() {                this.$store.commit('increment')            },            reduce() {                this.$store.commit('inreduce')            },            changeNum() {                this.$store.dispatch('change', 10)            }        }    })</script></body>

Vue 项目中 vuex 的使用(两种)

  1. 把 vuex 写在 main.js 文件里

import Vue from 'vue'import App from './App'import router from './router'import Vuex from 'vuex'// 全局状态管理Vue.use(Vuex)Vue.config.productionTip = falsevar store = new Vuex.Store({  state: {    num: 0  },  mutations: {    changeNum(state, num){      state.num += num    }  }})new Vue({  el: '#app',  store,  router,  components: { App },  template: '<App/>'})

    在组件中调用

<template><p><input type="button" value="改变count的值" @click="change">    {{this.$store.state.count}}<p></template><script>export default {name: '',data () {    return {}    },    methods: {change() {this.$store.commit('changeNum', 10)}}}</script>
  1. 把 vuex 分离出来

    在 src 目录下创建一个 vuex 目录,新建 modules 目录 和 index.js 文件 放到 vuex 目录下
vue中的vuex是什么意思

    在 main.js 文件里引入 vuex 目录

import Vue from 'vue'import App from './App'import router from './router'import store from './vuex'Vue.config.productionTip = falsenew Vue({  el: '#app',  store,  router,  components: { App },  template: '<App/>'})

    在 index.js 里写上如下代码

import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)let modules = {}const requireAllModules = require.context("./", true, /\.js$/)requireAllModules.keys().forEach(key => {  let module = requireAllModules(key).default  if (module && module.name && module.namespaced) {    modules[module.name] = module  }})export default new Vuex.Store({  modules: modules,  strict: process.env.NODE_ENV !== "production"})

    在 modules 目录下 新建 city.js 文件,里面代码如下

export default {  name: "city",  namespaced: true,  state: {    cityName: '',    cityCode: ''  },  getters: {    getState(state) {      return state    },    getCityCode(state) {      return state.cityCode    }  },  mutations: {    changeCity(state, cityName) {      state.cityName = cityName    }  }}

    在组件里设置值

<template><p><ul>          <li v-for="item in city" @click="handChangeCity(item.name)"></li>        </ul></p></template><script>import { mapMutations } from 'vuex'   // 引入vuexexport default {name: "city",data() {return {city: [{ id: 1, name: '北京' }{ id: 2, name: '上海' }{ id: 3, name: '广州' }{ id: 4, name: '深圳' }{ id: 5, name: '厦门' }]}},methods: {// 修改...mapMutations({changeCity: "city/changeCity"}),// 第一种写法handChangeCity(cityName) {this.changeCity(cityName)}// 第二种写法  不需要使用 ...mapMutationshandChangeCity(cityName) {this.$store.commit('city/changeCity', cityName);}}}</script>

    在另一个组件里使用

<template><p><p>{{getState.cityName}}</p><p>{{getCityCode}}</p></p></template><script>import { mapGetters} from 'vuex'   // 引入vuexexport default {data() {return {}},computed: {    // 第一种使用方法    ...mapGetters({    getState: "city/getState"    })    // 第二种使用方法    ...mapGetters('city', ['getState', 'getCityCode'])  }}</script>

关于“vue中的vuex是什么意思”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: vue中的vuex是什么意思

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

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

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

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

下载Word文档
猜你喜欢
  • vue中的vuex是什么意思
    这篇文章将为大家详细讲解有关vue中的vuex是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。概念    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的...
    99+
    2023-06-22
  • vue中babel指的是什么意思
    这篇文章将为大家详细讲解有关vue中babel指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在vue中,Babel是一个Jav...
    99+
    2024-04-02
  • vue中spa指的是什么意思
    这篇文章给大家分享的是有关vue中spa指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在vue中,spa全称“single-page ...
    99+
    2024-04-02
  • vue中的插槽是什么意思
    这篇文章主要为大家展示了“vue中的插槽是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中的插槽是什么意思”这篇文章吧。一、认识插槽Slot前面我们会通过props传递给组件一些数...
    99+
    2023-06-29
  • vue的$refs是什么意思
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。Vue中的$refs$refs是一个对象,持有注册过ref attribute的所有DOM元素和组件实例。描述ref被用来给元素或子组件注册引用信息,引用信息将会注册在父...
    99+
    2023-05-14
    $refs Vue
  • vue中v-bind是什么意思
    vue中v-bind是一个vue指令,用于绑定html属性,比如你的class属性,style属性,value属性,href属性等等,只要是属性,就可以用v-bind指令进行绑定。示例:传给v-bind:class一个对象,以动态地切换cl...
    99+
    2024-04-02
  • vue项目中$t()的意思是什么
    目录vue中$t()的意思vue中$t()的使用说明vue中$t()的意思 一般项目vue文件中将会把中文字符的数量拉至最低,这时候需要用一个文件容器来储存他们。 举例: <e...
    99+
    2024-04-02
  • vue的跨域是什么意思
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。一、跨域是什么跨域是指浏览器不能执行其他网站的脚本。它是浏览器同源策略造成的,是浏览器对JS实施的安全限制。跨域本质是浏览器基于同源策略的一种安全手段同源策略(Sameo...
    99+
    2023-05-14
    Vue
  • vue dom是什么意思啊
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。什么是domdom是一种文档对象模型,同时也是用于html编程的接口,通过dom来操作页面中的元素。当html页面被实现加载的时候,浏览器会创建一个dom,给文档提供了一...
    99+
    2023-05-14
    Vue dom 虚拟DOM
  • vue的深复制是什么意思
    这篇文章主要讲解了“vue的深复制是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue的深复制是什么意思”吧!Object.assign() 方法...
    99+
    2024-04-02
  • Vue初始化是什么意思
    Vue 是一款非常流行的 JavaScript 框架,广泛用于构建现代化的 Web 应用程序。在开始学习 Vue 之前,你需要先了解 Vue 的初始化过程,以便正确地使用 Vue 并创建可重复的代码。初始化 Vue 是指在页面中创建一个 V...
    99+
    2023-05-14
  • datanode中的是什么意思
    这篇文章主要介绍了datanode中的是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 DataNode...
    99+
    2024-04-02
  • css中的*是什么意思
    在 css 中,(星号)是一个通配符,表示匹配任何数量的字符,包括空格。它通常用于选择器中,以选择特定元素或样式。例如: { 色彩:红色; },选择页面中的所有元素并设置文本颜色为红色。...
    99+
    2024-04-28
    css
  • c++中的/=是什么意思
    c++ 中 /= 运算符用于将变量除以某个值并将其结果存储回变量本身,这等效于执行 variable = variable / expression。 C++ 中 /= 的含义 在 C...
    99+
    2024-05-01
    c++
  • sql中的@是什么意思
    sql 中 @ 符号用于指定一个查询中可变的参数,对提高代码可读性、防止 sql 注入攻击、提高性能有帮助。语法:@parameter_name,其中 parameter_name 是参...
    99+
    2024-05-02
    代码可读性
  • MySQL中的/*是什么意思
    在MySQL中,/ /用于多行注释。它可以在SQL语句中的任何位置使用,用于注释掉一段代码或提供对代码的解释。多行注释可以跨越多个行...
    99+
    2023-10-20
    MySQL
  • c++中的!是什么意思
    c++ 中的 ! 运算符是逻辑非运算符,用于对布尔表达式进行取反,将其真值翻转为假值或假值为真值。 C++ 中的 ! 运算符 什么是 ! 运算符? ! 是 C++中的逻辑非运算符,又称...
    99+
    2024-04-26
    c++
  • c++中的+=是什么意思
    += 运算符在 c++ 中用于将变量的值与表达式求和,然后将其存储回变量中,等价于 variable = variable + expression。优点包括代码简洁、可读性高和效率提升...
    99+
    2024-04-26
    c++
  • c++中的_是什么意思
    c++ 中的“_”符号用于:1. 处理与关键字冲突的函数参数;2. 标记未使用的变量;3. 命名空间限定;4. 宏预处理器;5. 匿名联合或枚举成员。 C++ 中的“_”符号 C++ ...
    99+
    2024-04-28
    c++
  • c++中的!=是什么意思
    != 运算符用于比较两个操作数是否不相等。语法:结果 = 操作数1 != 操作数2;返回布尔值:如果操作数不相等,则返回 true;如果相等,则返回 false。它只适用于相同类型的数据...
    99+
    2024-04-28
    c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作