为了账号安全,请及时绑定邮箱和手机立即绑定

vue中变量与函数作用域的问题?

vue中变量与函数作用域的问题?

慕标5832272 2018-10-11 18:15:47
我的vue项目中设置了两个路径,当路径为a时渲染A组件,当路径为b时渲染B组件。两个组件都需要可以访问并修改x变量。因此必须设置全局变量x和修改x变量的全局函数changeX。因为项目比较小,我没有使用vuex,在网上搜了一下大家好像都是在Vue.prototype来定义全局函数,如何定义全局变量我没有找到。无意中,我发现可以在根目录的index.html里,在<script src="/dist/build.js"></script>(这是经过webpack打包后引入的文件)之前再放插入一个<script>标签,标签内声明的变量和函数可以在任意组件中访问。像下面这样在上面这种情况下,A组件和B组件中均可调用changeX函数,如:上面这样是可行的,但是当全局函数和全局变量很多的时候放在index.html会很难看,于是我就写专门写了一个global.js文件,把x和changeX放到里面,然后用<script>标签引到index.html中,如下:这时再运行,控制台报错:“changeX不是一个函数”。把同样的js代码从文件中引过来和直接放在<script>标签中出现了不一样的效果,这是为什么呢?另外一个问题,main.js是webpack的入口,我们在里面引入组件,定义Vue实例,我直接在这个文件里定义变量和函数,在组件中也是不能访问的,如下:我实在被作用域的问题给搞迷糊了,现在只能把全局的东西都写在index.html中,有懂的前辈希望指点一下。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1497 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信