首页 > 编程知识 正文

vue,vue详解

时间:2023-05-04 10:38:21 阅读:28450 作者:4852

文章目录一、前言二、getters三、mapGetters辅助函数四、 mapGetters五、扩展阅读

另一方面,前言Vuex提供了state状态统一管理树,开发者可以在vue中使用computed计算属性来接收和使用这些公共状态。 当然,在收到原值的基础上,也可以对该值进行一些改造。 例如:

虽然computed : { sex : function (} { return this.$ store.state.sex '中添加字符串是改造) },但如果其他组件也希望使用此改造方法更改此值,请单击此处

为了解决这个问题,vuex本身提供了一种类似于计算属性的方法。 使用getters,可以从store的state派生新状态。 当然,如果多个组件使用此状态,或者每个子组件使用的派生属性不同,则可以完全不使用getters。

其实,Vuex是为了解决组件之间的通信问题而出现的。 如果您的操作或数据是单个组件操作,而不管公共操作如何,请不要将这些状态值或函数保存到vuex。vuex会把自身挂载到所有组件上,不管当前组件是否用到里面的东西,因此这事实上肯定增加了性能的损耗

二、getters Vuex允许在store中定义“getter”(被认为是store的计算属性)。 与计算属性一样,getter返回值是基于相关性缓存的,并且仅在相关性值发生更改时重新计算。 说实话,是vue的computed。 如果你知道computed,你就可以像使用computed一样使用getters。 当然,有点不同。

state.js

let state={ from: 'china ',arr : [ 2,3,1,4,6 ] } exportdefaultstate 3358 www.Sina.com /

//第一个参数是state let address=(state )={ return '国籍:' state.from } //第二个参数是gettersletaddressmore=(getters ) 当然,这个function最后返回具体的数值//在这个例子中这个方法,state的arr数组中的值let findArr=(state )=(number )={ let ifexit=state.arr ES6语法中数组的扩展if(typeof(ifexit )==='undefined ' ) return false (else (return true ) ) export (地址,地址),address 这里重点介绍了Getters和computed之间的区别。 上面的第三种使用方法。

computed的缺点之一是不能传递参数。 如果要确定数组中是否存在某个值,则不能将该值传递给computed。 getters没有这个问题。 有些学生在使用ES6语法方面遇到困难,为了看看findArr在做什么,请看看下面的简单版本。

letfindarr=function(state ) /匿名函数return function (number ) /如果有相同的则返回n,如果找不到则返回undefinedletifexit=state.arr.finr .

templatedivdiv { { from }/div div { { from2} }/div/div/template script//import { map getters } from ' vuex ' export dend { return this.$ store.getters.address },from 2: function ({ return this.$ store.getters.address more },创建

三、mapGetters辅助函数针对辅助函数的使用和对象展开子的使用,通过必要的童鞋自学。

templatedivdiv { { from }/div div { { from2} }/div/div/templatescriptimport { map getters } from ' vuex ' export default ' from2' : '地址模式', ' finning created((console.log ) this.find ) ) getters是通过computed装载到当前实例的,因此, 用this.$store.getters的方法访问console.log (this.$ store.getters.findarr ) console.log (this.$ store.findarr )2) div div { { from2}/div/templatescriptimport { map getters } from ' vuex ' export default { computed : } . map getters () ' from2' : '地址模式', 因为created((console.log ) this.find ) ) getters是通过computed装载到当前实例上的,所以, 用this.$store.getters的方法访问console.log (this.$ store.getters.findarr ) console.log (this.$ store.findarr )2)

五.扩大阅读《Vue进阶(幺肆捌):Vuex辅助函数详解》 《Vue进阶(四十三):Vuex之Mutations详解》

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。