请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

4-2

图片描述
请问下这里为什么要使用const,前两个虽然还能理解,但是这种不重复计算的变量我觉得应该在计算属性里定义,让vue去完成缓存比较好吧。第三个transform明明不能重复定义,为什么他还实现了可以变化的逻辑呢?

正在回答 回答被采纳积分+3

1回答

ustbhuangyi 2019-10-12 17:03:16

所有定义的不可改变的变量,理论上都应该使用 const,通过调用 tabBar 组件的 setSliderTransform 方法完成实现了变化。

0 回复 有任何疑惑可以回复我~
  • 提问者 Morning威 #1
    第三个变量不是用const定义吗,为什么还能变化
    回复 有任何疑惑可以回复我~ 2019-10-12 19:03:58
  • 提问者 Morning威 #2
    我详细说一下我目前的理解,const的作用域是块内,所以每次函数执行完后,变量都会销毁。那么获取的tab宽度和slide宽度就会每次都去重新定义获取,没有达到用意。移动位置的变量也是每次都重新计算定义,后面也没有再改变,用let或者var都是一样的,但这里用const会造成一点理解偏差。一开始出现这个疑惑主要是对const的细节不够了解,后面去查了一下,如有错误,麻烦老师指正。
    回复 有任何疑惑可以回复我~ 2019-10-12 21:40:52
  • ustbhuangyi 回复 提问者 Morning威 #3
    这里的 scroll 的 pos 每次都是变化的,所以这里定义一个局部变量 transform,并且每次都是要去计算一遍是符合预期的。ES6 是不用 var 的,至于用 let 还是 const 的一个原则是定义的变量如果不修改就全部用 const 定义。
    回复 有任何疑惑可以回复我~ 2019-10-13 00:21:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信