vue.js--vm在created里为什么是undefined?

1.页面中用script单独引用vue.js(v2.1.7),在created里的打印window.vm是undefined,但是打印window对象发现vm是存在,且不是undefined,那为啥window.vm是undefined???
2.代码信息

clipboard.png

3.打印window对象截图
clipboard.png

阅读 7.8k
5 个回答

之前的回答不对,这个时候Vue实例已经创建了,但是由于使用new操作符时,JS特殊的处理,这个时候的vm的值是undefined,要想使用vm,只能用this来引用。
你可以用Object.getPropertyDescriptor()window.vm的描述符打印出来就知道了

因为执行到created的时候还没有把实例返回出来啊

新手上路,请多包涵

我不知道你是啥原因,但是我这里是因为给全局ajax请求加了个 async : false 的参数就出现了这个问题,后端人员我也说不出个所以然,我还以为是开了同步才会有这个问题 ==

首先vue是没有定义一个vm这个变量. 所以打印出来是undefined在正常不过
var vm = new Vue()这样才能够

确实,vue是在mounted的时候才创建DOM对象并返回实例,所以created的时候并还没有执行实例化,可以尝试下在控制台打印,应该就可以打印出来

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题