比如下图中a变量、b变量。什么场合下使用a变量,不需要驱动视图更新时使用a变量吗?
<script>
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
let a = 2
export default {
name: 'App',
data () {
return {
b: 3,
locale: zhCN
}
}
}
</script>
比如下图中a变量、b变量。什么场合下使用a变量,不需要驱动视图更新时使用a变量吗?
<script>
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
let a = 2
export default {
name: 'App',
data () {
return {
b: 3,
locale: zhCN
}
}
}
</script>
是全局变量吗?
不是,vue 文件走 vue-loader,然后走 webpack 的 module 处理,最终都会存在某个闭包环境里。
什么场合下使用a变量,不需要驱动视图更新时使用a变量吗?
是的。尤其在 vue2,响应式变量是会带来一定性能损耗的,所以不需要响应式就声明在 data()
外面是很合理的做法。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
一般只有常量const才会写在外面。
原因就是,如果你在多个地方引用了这个组件,这些地方的组件的a是共用的。
改变一个其他的也会变。
如果是常量const就没问题。
如果不想让一个变量进入data的响应式监听中,直接在created生命周期中挂载就可以。
data () {
return {}
},
created () {
this.a = 1
}