怎么用vuex

  介绍

这篇文章给大家分享的是有关怎么用vuex的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。


首先贴上官方文档,https://vuex.vuejs.org/guide/modules.html

<>之前,新建项目就不多说了,用vue-cli ,在新建项目的选项上选择了typescript 和class 类的方式,这种形式也和react 的class 方式是很像的,然后一直下一步下一步,项目就给你自动创建成功了,很吊有没有。

怎么用vuex

根据提示运行npm运行服务熟悉的界面就来了:

怎么用vuex

这些没必要说了,下面进入正题,其实已经自动整合了vuex 
  并且创建了,store.ts以前 <>以前import  Vue 得到& # 39;vue # 39;;
  import  Vuex 得到& # 39;vuex& # 39;;
  
  Vue.use (Vuex);
  
  export  default  new  Vuex.Store ({
  状态:{
  ,,,的名字:,& # 39;Hello 词# 39;
  ,,,数:,1,
  ,,,用户:,(
  ,,,,,,,{,名字:& # 39;×××& # 39;,,年龄:,18,},
  ,,,,,,,{,名字:& # 39;小刘& # 39;,,年龄:,18,},
  ,,,,,,,{,名字:& # 39;小王& # 39;,,年龄:,11,},
  ,,,,,,,{,名字:& # 39;小张& # 39;,,年龄:,18,},
  ,,,,,,,{,名字:& # 39;小鹏& # 39;,,年龄:,18,},
  ,,,,,,,{,名字:& # 39;小强& # 39;,,年龄:,19,},
  ,,,,,,,{,名字:& # 39;小子& # 39;,,年龄:,20,},
  ,,,)
  },
  突变:{
  ,,,增量(状态,有效载荷),{
  ,,,,,,,//,mutate 状态
  ,,,,,,,state.count  +=, payload.count;
  ,,,},
  },
  getter: {
  ,,,getAges:,(状态),=祝辞,{
  ,,,,,,,return  state.users.filter (user =祝辞,{
  ,,,,,,,,,,,return  user.age 祝辞,18;
  ,,,,,,,});
  ,,,}
  },
  行动:{
  
  },
  });
<>之前(稍微添加了点东西);      那么我们在页面上怎么用他呢?   只需要引入,store.ts ,然后,store.state 就可以获取状态了   以前以HelloWorld.vue 为例 <>以前& lt; template>   & lt;才能div 类=癶ello"比;   ,,,& lt; template>   ,,,,,& lt; el-radio  v模型=癱heckTest", @change=癱lickHandle",标签=?”;在备选项& lt;/el-radio>   ,,,,,& lt; el-radio  v模型=癱heckTest", @change=癱lickHandle",标签=?“祝辞备选项& lt;/el-radio>   ,,,& lt;/template>   & lt;才能/div>   & lt;/template>   & lt;才能/div>   & lt;/template>      & lt; script  lang=皌s"祝辞   import {,组件,道具,Vue },得到“vue-property-decorator";   import  store 得到“/. ./store";   import  Combilestore 得到“. ./combineStore";      @ component   export  default  class  HelloWorld  extends  Vue  {   @Prop才能(),private 味精!:,字符串;   数据(),才能{//data 直接定义   ,,,//数据   ,,,return  {   ,,,,,checkTest:,“1”;   ,,,};   ,,}//以才能前包裹在方法里面,现在可以独立出来   clickHandle才能(val), {   ,,,//调用vuex的commit 方法提交mutations 更新状态   ,,,//输出获取state  store.state 这个应该和react 几乎一模一样   ,,,console.log (store.state.checkTest);   ,,,store.commit (“setCheckedVal",, {, val:“1“,});   ,,}//才能生命周期   安装(),{才能   ,,,console.log (store.state.checkTest);   ,,}   }   & lt;/script>      & lt; !——, Add “scoped", attribute 用limit  CSS 用却;能够component  only ——比;   & lt; style  scoped  lang=皊css"比;   h4  {   保证金才能:40 px  0, 0;   }   ul  {   list-style-type才能:没有;   ,,填充:0;   }   li  {   ,,显示:inline-block;   保证金才能:0,10 px;   }   a  {   ,,颜色:# 42 b983;   }   & lt;/style>

getter是对国家的一些过滤操作,如果想要改变状态就执行store.commit方法

第一个参数是突变名称在商店的突变下定义。

第二个参数是传递的参数类似react-redux的行动。

现在都是在一个商店文件上定义所有状态,当项目越来越大的时候如果还采用这种方式,那么店必定越来越大,有没有什么办法优化呢?当然有那就是模块
官网例子

新建一个店取名combineStore.ts:

<>之前,import  Vue 得到& # 39;vue # 39;;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么用vuex