vue2.x中使用vuex

这篇具有很好参考价值的文章主要介绍了vue2.x中使用vuex。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vuex是什么?

Vuex是一个专门为Vue.js应用程序开发的状态管理模式。它采用集中式存储来管理应用程序中所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex也被集成到了Vue的官方调试工具vue-devtools中,提供了诸如零配置的time-travel调试、状态快照导入/导出等高级调试功能。

vue2.x中使用vuex 

这是Vuex的工作原理 

安装Vuex

方法一:使用CDN

<!--引用最新版-->
<script src="https://unpkg.com/vuex@next"></script>
<!--引用指定版本-->
<script src="https://unpkg.com/vuex@4.0.0-rc.1"></script>

方法二:使用模块化安装

npm install vuex@next --save
or
yarn add vuex@next --save

创建Vuex的目录结构 :

src/store
    store/modules
        modules/actions.js
        store/getters.js
        store/mutations.js
        store/state.js
    store/index.js

vue2.x中使用vuex

 Vuex目录详解:

        store/modules:模块化,如果项目大的话,代码会很多,如果全部放一起,不利于管                                       理,所以有了modules

        store/index.js:通俗将就是将所有的模块都导入进来,最终作为Vuex的一个总入口

        store/modules/actions.js:
                                                1、Action 类似于 mutation,不同在于:1.Action 提交的是                                                        mutation,而不是直接变更状态。也就是说,如果想改                                                           变state的值,就必须调用mutations中的方法

                                                2、在actions中做逻辑操作,计算、发送ajax

                                                3、用actions中的方法是:dispath()

                                                4、可以包含任意异步操作

          store/modules/getters.js:

                                                1、实时监听state值的变化(最新状态)

                                                2、getters中必须是一个函数,并且函数必须有返回值,所以                                                        将获取的所有值都写成函数返回值规则

          store/modules/mutations.js:

                                                1、要修改store中的值唯一的方法就是提交mutation来修改

                                                2、mutations在请求数据的时候,是同步的

           store/modules/state.js:

                                                1、设置全局访问的state对象

将Vuex导入main.js中并挂载

import store from './store/index'//导入 Vuex 的文件: store.js
new Vue({
  store,
  router,
  render: h => h(App)
}).$mount('#app')

各个文件的编写方法

        store/index.js:

vue2.x中使用vuex

import Vue from 'vue'
import Vuex from 'vuex'
import state from './modules/state'
import actions from './modules/actions'
import mutations from './modules/mutations'
import getters from './modules/getters'

Vue.use(Vuex);

export default new Vuex.Store({
  state,
  actions,
  mutations,
  getters
})

store/modules/state.js:

vue2.x中使用vuex 

 store/modules/actions.js:vue2.x中使用vuex

 store/modules/getters.js:vue2.x中使用vuex

store/modules/mutations.js: 

 vue2.x中使用vuex

 Vuex在组件页面中的使用state的值方式:

在标签中直接使用

<div>最优秀的前端工程师是:{{ $store.state.name }}</div>

 如果你想直接调用state的值得话,先导入 mapState,然后在 computed 中定义相应的值

import { mapState,mapGetters } from 'vuex'
computed: {
    ...mapState(['name','city','shopCart']),  //userInfo,allState变量
    ...mapGetters(['name'])
  },

然后你就可以直接在标签中使用对应的值了

<div>我是通过mapGetters获取的getters的name值:{{name}}</div>

 在组件页面中调用store/modules/actions.js 中的方法

this.$store.dispatch('addAge',2)
//addAge:就是在actions中定义的方法

在组件中调用store/modules/mutations.js 中的方法

this.$store.commit('changeName','武则天')
//changeName:就是定义在 mutations.js 中的方法

到了这一步Vuex的设置及简单使用就已经基本完成了,还请各位大佬指教       (#^.^#)文章来源地址https://www.toymoban.com/news/detail-412024.html

到了这里,关于vue2.x中使用vuex的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 新建一个vue2项目

    在终端中输入以下命令进行全局安装: 1.在你要创建项目的目录下打开终端输入vue create 【你的项目名称】 2.手动选择安装 3.根据自己的需求选择 4.选择vue版本 5.是否使用calss风格的组件语法: (推荐:y) 6.这个选择的意思是要不要使用babel工具自动转换为ts代码注入polyiss(

    2024年02月11日
    浏览(41)
  • Vue3和Vue2有什么区别?

    先来说说Vue3相对于Vue2的优点吧: 更快的渲染速度 更小的体积 更少的内存占用 更丰富的功能 听起来好像Vue3比Vue2强很多啊,但是具体强在哪里呢?我们来看几个代码例子: 首先是安装Vue3和Vue2: 在Vue3中,如果你想注册一个组件,你可以这样做: 而在Vue2中,你需要这样做:

    2024年02月08日
    浏览(89)
  • 【Vue框架】Vue2中axios发送请求—安装axios、配置全局域名、传递参数、axios原理之Promise(什么是Promise、使用原因、基本使用、相关API、async与await使用)

    官网: https://www.axios-http.cn/ 1.1.1 安装axios库 安装 axios 通信库: npm install axios -S 1.1.2 在全局中引入axios库 全局在main.js中引入axios: import axios from \\\'axios\\\' 1.1.3 挂在原型对象 Vue.prototype.$axios = axios; 将 axios 挂载到Vue原型对象中,实现数据共享,节约内存空间。 此时在任何页面都可

    2024年02月05日
    浏览(51)
  • 创建一个vue2的脚手架项目(超详细)

    0.前言 在用npm安装vue脚手架之前需要安装node,前面博客有详细安装过程,请读者安装node之后再进行脚手架的安装 1 npm vue2的安装脚手架 2.创建vue2脚手架项目 3.开启服务器 4.在浏览器中输入端口地址 5.项目目录介绍

    2024年02月11日
    浏览(71)
  • 封装vue2局部组件都要注意什么

    template  =  组件的模板结构  (必选) 每个组件对应的模板结构,需要定义到template节点中 template中使用的指令 template定义根节点 注:vue 2.x版本中,template节点内dom结构仅支持单个根节点;但在vue 3.x版本中,支持多个根节点 script  =  组件的javascript行为  (可选) script中的

    2024年02月13日
    浏览(50)
  • Vue2封装一个全局通知组件并发布到NPM

    ✍🏼作者:周棋洛,计算机学生 ♉星座:金牛座 🏠主页:点击查看更多 🌐关键: vue2 组件封装 npm发包 你好!我是王子周棋洛,好久没写文了。 今天带大家 封装 一个类似 element-ui 的全局通知组件,并发布到 npm 后安装使用自己封装的组件。go,go,go🎉 原因1:现成UI组件

    2024年02月09日
    浏览(53)
  • vue2封装一个步进器组件number-box

    最近做一个商城的项目,商品的详情页和购物车列表都需要用到上面数量增减的功能,其实这个是一个很普通的功能,但是购物车的列表是放到vuex里面的,这里记录使用的差别: 首先封装number-box组件: 在列表页去引用,并使用v-vmode传递数据: 如果数据是直接在data下面,直

    2024年02月04日
    浏览(49)
  • vue2中,vue.extend使用场景

    extend是Vue.js提供的一个构造器,用于创建一个组件的子类。它接受一个组件选项对象作为参数,并返回一个新的组件构造函数。 Vue.component是一个全局方法,用于注册全局组件。它接受两个参数,第一个参数是组件名称,第二个参数是组件选项对象。 extend用于在父组件内部创

    2024年02月07日
    浏览(44)
  • 如何搭建一个基于vue2和element-ui的项目框架模板(两万四千字长文)

    使用vue script标签引入 如果只是单纯的使用vue,可以使用 script src=\\\"https://cdn.jsdelivr.net/npm/vue/dist/vue.js\\\"/script 直接引入 npm安装vue 使用npm安装vue需要先安装node.js,如果你的电脑未安装node,可以参考我的个人碰到的前端问题总结及解决方案2第15个问题先安装nvm(node version manager)

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包