首页 > 其他分享 >Vue学习七:自定义创建项目和vuex

Vue学习七:自定义创建项目和vuex

时间:2023-09-18 17:47:16浏览次数:50  
标签:Vue 自定义 mutations state 组件 vuex store

一、自定义创建项目

默认的项目有很多包不全,需要的时候还要导包搭架子,因此我们可以自定义创建项目。

选择的项目按照自己需要的设置,可参考如下参数设置。(eslink是一种代码规范)

二、vuex

1、vuex概述
vuex是一个vue的状态管理工具,状态就是数据。
大白话: vuex 是一个插件,可以帮我们管理vue通用的数据(多组件共享的数据)例如: 购物车数据个人信息数据
2、场景:
①某个状态在很多个组件来使用(个人信息)
②多个组件共同维护一份数据(购物车)

创建一个空仓库

导入vuex模块,可以在创建项目的时候直接勾选,也可以输入命令导包,指令如下。(记得版本口诀233,344,这里使用的是vue2导vuex3的包)

npm install vuex@3 --save

新建vuex模块文件,在src下新建

创建仓库,在index.js中写,空仓库模板如下

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
    
})
export default store

在main.js中导入挂载

import Vue from 'vue'
import App from './App.vue'
import store from '@/store/index'
Vue.config.productionTip = false

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

看是否创建成功的话,在一个组件中使用created钩子函数在里面打印一下仓库(console.log(this.$store)),看时候能打印出。

往仓库里面加数据并在组件中访问仓库中的数据

1.提供数据:
State提供唯一的公共数据源,所有共享的数据都要统一放到 Store中的State中存储。在state对象中可以添加我们要共享的数据。

2.使用数据:
①通过store直接访问

模块中:{{$store.state.xxx}}
组件逻辑中:this.$store.state.xxx
JS模块中store.state.xxx

②通过辅助函数

核心概念- mutations
目标:明确vuex同样遵循单向数据流,组件中不能直接修改仓库的数据
通过strict: true可以开启严格模式

目标:掌握mutations的操作流程,来修改state数据。(state数据的修改只能通过 mutations )
1.定义mutations对象,对象中存放修改state的方法

const store = new Vuex.Store({
    state:{
        count:100
    },
    mutations:{
        //第一个参数是当前的store的state属性
        addCount(state){
            state.count += n
        }
    }
})

2.组件中提交调用mutations

methods:{
    handleAdd(){
        this.$store.commit('addCount')
    }
}

核心概念- actions
目标:明确actions的基本语法,处理异步操作。
说明: mutations 必须是同步的(便于监测数据变化,记录调试)

1、提供action方法

actions:{
    setAsyncCount(context,num){
        setTimeout(() => {
            context.commit('addCount',num)
        },100)
    }
}

2、页面中dispatch调用

this.$store.dispatch('setAsyncCount',n)

 

标签:Vue,自定义,mutations,state,组件,vuex,store
From: https://www.cnblogs.com/panglinglong/p/17711451.html

相关文章

  • Vue3+vite路由配置优化(自动化导入)
    今天在维护优化公司中台项目时,发现路由的文件配置非常多非常乱,只要只中大型项目,都会进入很多的路由页面,规范一点的公司还会吧路由进行模块化导入,但是依然存在很多文件夹的和手动导入的问题。于是我想到了我之前使用vuex时进行的模块化自动导入js文件,能不能使用到自动导入.vue文件......
  • netty发送socket短连接请求,自定义报文头
    packagecom.chinaums.japi.util;importio.netty.bootstrap.Bootstrap;importio.netty.buffer.ByteBuf;importio.netty.buffer.Unpooled;importio.netty.channel.*;importio.netty.channel.nio.NioEventLoopGroup;importio.netty.channel.socket.SocketChannel;......
  • 自定义对象的of生成操作
    自定义对象的of生成逻辑依赖于lombok的注解@RequiredArgsConstructor(staticName="of")写法@Accessors(chain=true)@Setter@Getter@RequiredArgsConstructor(staticName="of")publicclassStudent{@NonNullprivateStringname;priva......
  • vue 的 name 和最外层 class命名也需要保证唯一性
    平时为了赶工期,在画页面的时候,会复制框架里面相同样式的页面,直接Ctrl+A  Ctrl+C  Ctrl+V 然后修改字段。这样写节省不少时间,也提高了效率。但是是有隐患的,首先是vue的name,挺重要的比如keepalive时候,exclude  include的name就需要保持一致。(之前踩过坑,vue中name和r......
  • Kingbase ES 自定义聚合函数和一次改写案例
    文章概要:KES的SQL的语法暂时不兼容oracle的自定义聚合函数的创建语法和流程,但是可以使用KES已支持的语法改写。本文整理和简单解析了自定义聚合函数的原理和解读了范例代码。并根据客户代码进行了改写。一,oracle自定义聚合函数的简析oracle的自定义聚合函数需要实现4个ODCIAg......
  • 少年,该升级 Vue3 了!
    你好,我是Kagol。前言根据Vue官网文档的说明,Vue2的终止支持时间是2023年12月31日,这意味着从明年开始:Vue2将不再更新和升级新版本,不再增加新特性,不再修复缺陷虽然Vue3正式版本已经发布快3年了,但据我了解,现在依然还有很多业务在使用Vue2,迟迟没有升级Vue3。为......
  • Vue3深度解析:reactive和ref的区别你真的了解吗?
    Vue3中引入了CompositionAPI,其中包含了reactive和ref两个核心函数。这两个函数都是用于创建响应式数据的,但它们之间有一些区别。首先,让我们来看一下reactive函数。reactive函数接受一个普通对象作为参数,并返回一个新的响应式对象。这个响应式对象会跟踪所有属性的变化,并在属性发......
  • vue3 computed属性
    该随笔是根据b站小满zs的Vue3+vite+Ts+pinia+实战+源码+electron的视频学习写的,Vue3+vite+Ts+pinia+实战+源码+electron......
  • Spring Boot + Vue3 前后端分离 实战 wiki 知识库系统<一>---Spring Boot项目搭建
    前言:接下来又得被迫开启新的一门课程的学习了,上半年末尾淘汰又即将拉开序幕【已经记不清经历过多少次考试了】,需要去学习其它领域的技术作为考试内容,我选了springboot相关技术,所以。。总之作为男人,不能轻易言败,尽力而为,抱怨解决不了任何问题,逆境使人进步,我坚信这点,效果:在正式学习......
  • 自定义注解@ValidValueList
    1、自定义注解@ValidValueList和验证器ValidValueListValidator来确保集合中的元素必须是在指定的值列表中。2、注解@ValidValueList允许你在字段或参数上标记一个集合,并为其提供一组有效的值。验证器ValidValueListValidator则用于检查集合中的元素是否都在指定的值列表......