Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >vuex - 项目结构目录及一些简单配置

vuex - 项目结构目录及一些简单配置

作者头像
xing.org1^
发布于 2018-06-26 05:49:51
发布于 2018-06-26 05:49:51
34400
代码可运行
举报
文章被收录于专栏:前端说吧前端说吧
运行总次数:0
代码可运行

首先先正经的来一段官网的"忠告":

vuex需要遵守的规则:

一、应用层级的状态应该集中到单个 store 对象中。

二、提交 mutation 是更改状态的唯一方法,并且这个过程是同步的。

三、异步逻辑都应该封装到 action 里面。

文件目录结构

文件之间的关系:

store文件夹 - 存放vuex的系列文件

store.js - 引入vuex,设置state状态数据,引入getter、mutation和action

getter.js - 获取store内的状态

mutation.js - 更改store中状态用的函数的存储之地

action.js - 提交mutation以达到委婉地修改state状态,可异步操作

简单而又普通的写法

store.js文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Vue from 'vue'

import Vuex from 'vuex'

import actions from './actions'

import mutations from './mutations'

Vue.use(Vuex)

const state = {

    a: '初始值',

    b: 'balabala...'

}

export default new Vuex.Store({

        state,

        actions,

        mutations

})

main.js文件中(从根组件注入store,就像注入router一样):

通过在根实例中注册 store 选项,该 store 实例会注入到根组件下的所有子组件中,且子组件能通过 this.$store 访问到。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import store from './store/index'

new Vue({

    el: '#app',

    router,

    store,

    ...

})

Getter.js 的简单配置( store 的计算属性,接受state为参数)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default {
        doneTodos: state = >{
            return state.todos.filter(todo = >todo.done)
        }
}

获取(某组件的计算属性内部):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
computed: {

    doneTodosCount () { 
        return this.$store.getters.doneTodosCount 
    }

}

可传参的getter属性的简单配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default{

    getTodoById: (state) => (id) => { 
        return state.todos.find(todo => todo.id === id) 
    }
}

获取(某组件的计算属性内部):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
computed: {

    getTodoById() { 
        return this.$store.getters.getTodoById(‘参数’)
    }

}

mutation.js简单配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default {

        increment(state) {

            //变更状态
            state.count++

        }

}

触发(组件中)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this.$store.commit(state,payload)

actions.js简单配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default{

    action (context) {

    //异步操作

        setTimeout(()=>{

            //变更状态

            context.commit('mutationFunName',value)

        }}

}

触发(组件的)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this.$store.dispatch('mutationFunctionName')

 2018-04-07  18:13:34

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vuex
当一个组件需要获取多个状态的时候,将这些状态都声明为计算属性会有些重复和冗余。为了解决这个问题,我们可以使用 mapState 辅助函数帮助我们生成计算属性,让你少按几次键:
小小杰啊
2022/12/21
1.2K0
Vuex精简文档
Vuex 通过 store 选项,提供了一种机制将状态从根组件“注入”到每一个子组件中(需调用 Vue.use(Vuex)):
神葳
2021/01/22
9180
vuex知识笔记,及与localStorage和sessionStorage的区别
  首先,Vuex是什么,官网介绍说Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。我的理解就是Vuex就是类似于sessionStorage这样管理数据(本地存和取)的一种技术方案。
tandaxia
2020/02/25
2.7K0
vuex知识笔记,及与localStorage和sessionStorage的区别
了解Vuex状态管理模式的理解强化指南
Vuex是什么呢?它是Vue的状态管理模式,在使用vue的时候,需要在vue中各个组件之间传递值是很痛苦的,在vue中我们可以使用vuex来保存我们需要管理的状态值,值一旦被改变,所有引用该值的地方就会自动更新。是不是很方便,很好用呢?
桃翁
2019/11/22
1.3K0
Vuex 文档笔记
每个Vuex应用的核心是store(仓库)。这个store是一个容器,包含着应用中大部分状态。
前端_AWhile
2019/09/06
5910
前端模拟登录注册静态实现示例-实战
登录注册,说说登录,需要用户名,用户名的提示内容为请输入用户名,密码的提示为8-18位不含特殊字符的数字、字母组合。还有一个点击按钮。
达达前端
2022/04/13
2.4K0
前端模拟登录注册静态实现示例-实战
​轻松掌握vuex,让你对状态管理有一个更深的理解
Vuex 是一个专为 Vue.js 应用程序开发的 状态管理模式 。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化
前端老鸟
2019/07/29
3.4K0
Vue基础知识巩固之全面了解Vuex,比官方更易懂(上)
写项目很久了,偶尔用到Vuex也是用一些很浅显的功能,就是简单的存储一下用户信息,用的时候取一下,很少深入的使用,现在静下心来想给自己写个项目,在写的过程中,顺便把以往忽略的基础知识学习巩固一下,这篇文章就是记录一下学习Vuex的知识,既然是巩固知识,那那些基础的就直接一笔带过了。
十里青山
2022/08/07
8420
Vue基础知识巩固之全面了解Vuex,比官方更易懂(上)
vuex 使用文档
安装 直接下载CDN 引用   <script src="/path/to/vue.js"></script>   <script src="/path/to/vuex.js"></script> npm   npm install vuex --save 在一个模块化的打包系统中,您必须显式地通过Vue.use() 来安装Vuex。   import Vue from 'vue'   import Vuex from 'vuex'   Vue.use(Vuex)   Vuex 是一个专为Vue.js 应
用户1197315
2018/01/22
1.7K0
Vuex基本使用的总结
在 Vue 的单页面应用中使用,需要使用Vue.use(Vuex)调用插件。 使用非常简单,只需要将其注入到Vue根实例中。
用户1065635
2019/03/21
7550
Vue3学习笔记(七)—— 状态管理、Vuex、Pinia
理论上来说,每一个 Vue 组件实例都已经在“管理”它自己的响应式状态了。我们以一个简单的计数器组件为例:
张果
2022/11/28
4.1K0
Vue3学习笔记(七)—— 状态管理、Vuex、Pinia
vue全家桶之vuex
状态管理可以简单理解为vue中的某些全局的data属性。 当组件状态增多时,整个应用和状态分散在每个组件和实例中。部分还会出现状态共享。这时最好的方案就是vuex。
一粒小麦
2019/07/18
1.5K0
vue全家桶之vuex
Vuex-Getter 原
有时候我们需要从 store 中的 state 中派生出一些状态,例如对列表进行过滤 
tianyawhl
2019/04/04
6170
【初学者笔记】一文学会使用Vuex
VueX是适用于在Vue项目开发时使用的状态管理工具。Vue为这些被多个组件频繁使用的值提供了一个统一管理的工具——VueX。在具有VueX的Vue项目中,我们只需要把这些值定义在VueX中,即可在整个Vue项目的组件中使用。
一尾流莺
2022/12/10
4.7K0
【初学者笔记】一文学会使用Vuex
vue3中使用Vuex
Vuex 曾经是Vue.js的官方状态管理库。为什么说是曾经呢,因为在Vue.js官方网站的生态系统的官方系统中找不到Vuex的影子了,取而代之的是Pinia。那么问题来了,既然Vue官方已经舍弃了Vuex,使用Pinia取而代之,我们还有必要去深入了解Vuex吗?
九仞山
2023/10/14
7110
vue3中使用Vuex
vuex(用了vue就上了一条不归路的贼船)
“杀鸡不用宰牛刀”。对于简单的项目,根本用不着Vuex这把“宰牛刀”。那简单的项目用什么呢?用Vue.js官方提供的事件总线就可以了。
landv
2019/07/02
3.4K0
vue之vuex2.0使用详解
Vuex 的核心是 store, 它是一个通过 Vuex.Store 构造函数生成的对象。为什么它会是核心呢?因为我们调用这个构造函数创建store 对象的时候,给它传递参数中包装了state, mutation , action 等核心内容。Vuex 的思想是 当我们在页面上点击一个按钮,它会处发(dispatch)一个action, action 随后会执行(commit)一个mutation, mutation 立即会改变state,state改变以后我们的页面会从state获取数据从而改变页面。Store对象包含了我们谈到的所有内容:action, state, mutation,所以是核心了。
山行AI
2019/07/30
1.7K0
vue之vuex2.0使用详解
深入探索Vue Getters和mapGetters的原理及使用详解
在Vue.js的状态管理中,Vuex是一个非常重要的工具,它帮助开发者集中管理应用的状态。Vuex的核心概念包括state、mutations、actions、getters和modules。今天,我们要深入探讨其中一个关键部分:getters,以及它的相关辅助函数mapGetters。通过详细介绍getters的原理和实现过程,希望能帮助你更好地理解和使用它们。
繁依Fanyi
2024/07/01
3330
10.Vuex组件中的mapState、mapGetters、mapMutations、mapActions等辅助函数
可以将所有的Mutation事件,写入到一个单独的文件中,然后通过常量来替代,可以方便开发者对项目中所有Mutation
全栈程序员站长
2022/09/01
1.4K0
vuex的五大核心_vue如何实现跨域
Vuex有5个核心概念,分别是State,Getters,mutations,Actions,Modules。
全栈程序员站长
2022/09/19
1.6K0
相关推荐
Vuex
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验