vue文件,在script标签下声明变量,是全局变量吗?

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

回到顶部