首页 > 其他分享 >vuex笔记

vuex笔记

时间:2023-03-07 23:33:44浏览次数:40  
标签:const name data 笔记 state return vuex store

Vue x

在开发中,我们会的应用程序需要处理各种各样的数据,这些数据需

要保存在我们应用程序中的某一个位置,对于这些数据的管理我们就

称之为是 状态管理

src/store/index.js

import { createStore } from "vuex"
const store=createStore({
state:()=>({
  counter:0
})
})
export default store

main.js

import store from './store'
createApp(App).use(store).mount('#app')

单一状态树

 用一个对象就包含了全部的应用层级的状态;

 采用的是SSOT,Single Source of Truth,也可以翻译成单一数据源;

单一状态树的优势:

 如果你的状态信息是保存到多个Store对象中的,那么之后的管理和维护等等都会变得特别困难;

 所以Vuex也使用了单一状态树来管理应用层级的全部状态;

 单一状态树能够让我们最直接的方式找到某个状态的片段;

 而且在之后的维护和调试过程中,也可以非常方便的管理和维护;

方案1

import { computed} from 'vue';
import { mapState,useStore } from 'vuex';

const {name,level}=mapState(["name","level"])
const store=useStore()
const cname=computed(name.bind({$store:store}))
const clevel=computed(level.bind({$store:store}))

方案2:

const store=useStore()
const {name,level}=toRefs(store.state)

getters

getters:{
  doubleCounter(state){
    return state.counter*2
  },
  totalage(state){
    return state.user.reduce((pre,item)=>{
      return pre+item.age
    },0)
  },
  message(state,getters){
    return `${state.name}${getters.totalage}`
  }
},

mapGetters的辅助函数

import {mapGetters}from 'vuex'
computed:{
  ...mapGetters(["doubleCounter","totalage","message"])
}

actions的基本使用

Action类似于mutation,不同在于:

 Action提交的是mutation,而不是直接变更状态;

 Action可以包含任意异步操作;

 async fetchhomeMusicAction(context){
    // fetch("http://123.207.32.32:8000/home/multidata").then(res=>{
    //   return res.json()
    // }).then(data=>{
    //   console.log(data)
    // })
    const res=await fetch("http://123.207.32.32:8000/home/multidata")
    const data=await res.json()
    context.commit("changebanners",data.data.banner.list)
    context.commit("changerecomder",data.data.recommend.list)
  }

 

分发

methods:{
  actionbtnclick(){
    this.$store.dispatch("incrementAction")
  }
}

可以携带参数

this.$store.dispatch("changnameAction","aaa")
 

标签:const,name,data,笔记,state,return,vuex,store
From: https://www.cnblogs.com/guorunbin/p/17190188.html

相关文章

  • 学习笔记:重链剖分
    重链剖分前置芝士:线段树,dfs序,LCA概念一个非叶子节点,他的儿子中子树大小最大的就是重儿子,否则就是轻儿子对于一条边,如果连接的子节点是重儿子,那么这条边就是重边,否则......
  • 狂神说css学习笔记
    什么是CSSCascadingStyleSheet层叠级联样式表CSS:表现层(美化网页)如:字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动等。CSS发展史CSS1.0CSS2.0DIV(块)+CSS,HTML和CSS......
  • 2023爬虫学习笔记 -- m3u8视频下载
    一、目标地址https://www.XXXX.com/二、获取mu38文件1、点击XHR,刷新页面,会看到这里有两个m3u8文件2、将m3u8地址复制到浏览器,会自动下载下来,index内容如下mixed内容如下3、......
  • 人月神话阅读笔记之一
    这段时间看了老师推荐的《人月神话》,这不是我第一次听闻这本书,当初的概论课上就有听老师说起过这本书,如今终于是第一次上手了。作者在书中的第一章——焦油坑,给我们讲述......
  • Python学习笔记(八)列表与元组
    一、列表的创建示例:1#列表中的元素可以是任意数据类型2li=[1,2,3,4,'张三','李四']3print(li)4li1=[]#空列表用于存放数据5#list()中必须是可......
  • 卡特兰数学习笔记
    参考了这篇博客引入\(n\)个元素进栈序列为:\(1,2,3,4...n\),求总共有多少种出栈序列。将进栈表示为\(+1\),出栈表示为\(-1\),则\(1,3,2\)的出栈序列可以表示为:\(+1,-1,......
  • Java官方笔记1编写运行Java程序
    你可能已经迫不及待想安装Java,写个Java程序跑起来了。但是在这之前,有些概念需要提前了解,因为Java跟C、C++和Python都有点不一样。编译和执行我们在文本文件中编写英文代......
  • C++笔记-指针
    1.const指针和指向const的指针指向const的指针是在类型前加星号可以指向非const类型指针可以改变指向dereference不能改变值const指针是在类型后面加星号指针不可......
  • C++笔记-static本地变量
    static本地变量只能被本地看到,所以不同函数之间的static变量相同也没事,但是同一个函数调用多次会忽略后面的初始化。#include<iostream>voidmyStaticFunction(){......
  • C++笔记-函数指针
    函数指针语法://fcnPtrisapointertoafunctionthattakesnoargumentsandreturnsanintegerint(*fcnPtr)();特点:函数指针的类型(参数和返回值)都必须和......