zoukankan      html  css  js  c++  java
  • Vuex-核心概念-State 学习笔记

    官方参考 进行了一些项目的实操, 当刚在代码中接触到了  mapState()   ...mapState 这样的代码时,一脸茫然,然后开始学习.

    版本1:直接在模板中访问Vuex中的数据,见下面行4, 其中 1).srcsotreindex.js 中new Vuex 对象 2).在 main.js 中注册这个Vuex对象,需调用 Vue.use(Vuex)

    1 <div class="title border-topbottom">当前城市</div>
    2 <div class="button-list">
    3   <div class="button-wrapper">
    4     <div class="button">{{this.$store.state.city}}</div>
    5   </div>
    6 </div>

    版本2:使用Computer 计算属性解决

    1 <div class="button-wrapper">
    2  <div class="button">{{ currentCity }}</div>
    3 </div>
    4 
    5 computed: {
    6  currentCity () {
    7   return this.$store.state.city
    8  }
    9 },

    版本3.1: mapState 辅助函数,帮助我们快速生成计算属性,因为这里只有1个属性,所以简便性体会不是那么明显

     mapState()  函数属于 Vuex 组件绑定的辅助函数, 我们可以通过 API 查到它的出处, 当import Vuex之后, 在项目代码中就可以使用了,当然需要import它

    import { mapState } from 'vuex'
    1 computed: mapState({
    2  currentCity: state => state.city
    3 }),

    注意书写语法,直接将mapState函数赋值给computed计算属性。mapState Vuex原生API 函数, 帮助我们快速生成计算属性,感觉像是语法糖衣

    官网参考

    版本3.2

    1 <div class="button-wrapper">
    2  <div class="button">{{ currentCityAlias }}</div>
    3 </div>
    4 
    5 computed: mapState({
    6  currentCityAlias: 'city' //传一个字符串'city',等价版本3.1中的语法
    7 }),

    除了给mapState对象传入对象作为参数,还可以传入一个数组,作用参考官网

    为什么mapState之前需要... 这样的展开运算符呢?
    版本3中的都是将mapState函数直接赋值给计算属性computed,因为mapState函数返回的是一个对象,如果将mapState函数与局部计算属性混合使用呢? 即将mapState函数返回值和其它成员"合成"一个对象赋值给computed

    1 computed: {
    2   localComputed () { /* ... */ },
    3   // 使用对象展开运算符将此对象混入到外部对象中
    4   ...mapState({
    5     // ...
    6   })
    7 }

     再看一个例子

    import { mapState } from 'Vuex'
    computed: {
      ...mapState(['city'])//map成名字叫city的计算属性
    }
  • 相关阅读:
    利用HashSet去重
    互联网春天来了吗?
    了解一下ECMA标准提案的几个阶段(stagex)
    peerDependencies WARNING 警告剖析
    React Error 无法分配为只读函数"类"的属性名称
    JavaScript 经典代码大全
    Javascript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)
    父页面与子页面传数据(脚本传数据)
    ASP.NET程序中常用的三十三种代码
    将GridView导出到Excel并防止内容乱码
  • 原文地址:https://www.cnblogs.com/zhuji/p/14440245.html
Copyright © 2011-2022 走看看