vue文件,在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>
回答:
一般只有常量const才会写在外面。
原因就是,如果你在多个地方引用了这个组件,这些地方的组件的a是共用的。
改变一个其他的也会变。
如果是常量const就没问题。
如果不想让一个变量进入data的响应式监听中,直接在created生命周期中挂载就可以。
data () {
return {}
},
created () {
this.a = 1
}
回答:
是全局变量吗?
不是,vue 文件走 vue-loader,然后走 webpack 的 module 处理,最终都会存在某个闭包环境里。
什么场合下使用a变量,不需要驱动视图更新时使用a变量吗?
是的。尤其在 vue2,响应式变量是会带来一定性能损耗的,所以不需要响应式就声明在 data()
外面是很合理的做法。
回答:
a和b在当前模块内都是全局变量,使用方法不同,a可以直接访问,b需要用this.b
。
数据不发生变化时使用a,其他情况使用b。
回答:
不是,是一个模块,一个模块有自己的模块作用域,a
变量只在当前模块生效;一般可以用来做静态变量。
以上是 vue文件,在script标签下声明变量,是全局变量吗? 的全部内容, 来源链接: utcz.com/p/936572.html