快速了解Vuex

Vuex

Vuex

📌vuex 是一个专为 Vue.js 应用程序开发的状态管理库

📌vuex 可以在多个组件之间共享数据,并且共享的数据是响应式的,即数据的变更能及时渲染到模板

📌vuex 采用集中式存储管理所有组件的状态(将公用的数据提取出来集中存储)

进行安装
npm install vuex@next --save

state:状态对象,集中定义各个组件共享的数据
mutations:类似一个事件,用于修改共享数据,要求必须是同步函数
actions:类似于mutation,可以包含异步操作,通过调用mutation来改变共享数据


使用Vuex

使用需要创建带有vuex功能的脚手架工程

创建好之后就是一个基础的index.js文件

js 复制代码
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

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

如何定义共享数据:

js 复制代码
  state: {
      name: '你好'
  },

这样在我们的页面中就会展示出定义的共享数据
如何展示呢

html 复制代码
<div id="app">
   {{$store.state.name}}
</div>

如何修改共享数据

js 复制代码
mutations:{
    setName(state,Newname){
     state.name=Newname
    }
}

那么如何修改,修改需要通过事件调用函数进行改变

js 复制代码
methods: {
    handleUpdate(){
    //第一个参数是对应的函数名称,第二个是参数
      this.$store.commit('setName','我好')
    }
}
  • 如果要进行异步操作

数据不是我们指定的,需要axios请求后端

就像初始界面,我们登录进去会显示谁谁谁你好,这个数据就是后端提供的
需要在actions中进行定义方法

js 复制代码
  mutations: {
  },
  actions: {
    setNameaxios(context){
      axios({
        url: '/login',
        method: 'post',
        data: {
          username: 'hlh',
          password: '123456'
        }
      }).then(res=>{
        if(res.data.code==1){
          context.commit('setName',res.data.data.name)
        }
      })
    }
  },

其中的context是一个上下文对象,通过它可以调用store中的上下文
同样也需要监听函数进行调用调用actions中定义的函数

js 复制代码
methods: {
    handleUpdate2(){
    //第一个参数是对应的函数名称,第二个是参数
      this.$store.dispatch('setNameaxios')
    }
}

附录:注意

发送请求就涉及到了跨域问题,在前端代码中我们可以在vue.config.js文件中配置代理

js 复制代码
  devServer:{
    port: 8081,
    proxy:{
      '/login':{
        target:'http://localhost:8080'
      }
    }
  }
相关推荐
RuoyiOffice2 天前
超级个体接私活必看:后端+前端+移动端三端一体企业管理系统怎么选(2026)
java·spring boot·vue·uniapp·全栈·企业管理·接私活
狗凯之家源码网2 天前
机车圈系统核心功能与实战效果展示
vue·node
无巧不成书02183 天前
Vue+Vue-CLI全平台零基础搭建教程
前端·javascript·vue.js·vue·前端开发·vue-cli·前端环境搭建
-Camellia007-4 天前
用 Vue3 + Vite + Pinia 写一个极简的“个人任务看板”(数据存本地 LocalStorage)
vue
shawxlee4 天前
vue3在public下封装config.js自定义配置动态数据,可在打包后直接修改,方便后端部署及后续维护
前端·javascript·经验分享·vue·团队开发·js·项目优化
jieyucx4 天前
Nuxt4阶段六:工程化与进阶 —— 模块、中间件、插件、TS 与测试
中间件·vue·web·nuxt·全栈·ssr
jieyucx4 天前
Nuxt4阶段五:渲染模式与性能优化
性能优化·vue·nuxt
csdn2015_5 天前
nodejs安装
node.js·vue
jieyucx6 天前
Nuxt阶段二:核心概念 —— 路由、布局、组件与 Composables
vue·web·nuxt·全栈·seo·ssr
jieyucx7 天前
Nuxt4阶段一:环境搭建与第一个 Nuxt 4 项目
vue·nuxt·全栈·ssr