外部 js 文件 访问 vue 实例 的两种方法 / 解决报错 TypeError: Cannot read property ‘$http‘ of undefined“

Before

报错:

Error in v-on handler: “TypeError: Cannot read property ‘$http’ of undefined”

Cannot read property ‘$http’ of undefined

在这里插入图片描述

Solution1

其实, 当我们创建 Vue 实例的时候

import vue from ‘vue’;

这里就完全可以把vue看作为 js 文件.

就是这个道理, 那么, 把某个库挂到 vue 的原型链后

在其他的 js 文件里访问, 那么就必须要 import 进来.

但是这里有个坑, 不能像下面这一行, 从 node_modles 直接导入

import vue from 'vue'

这样导进来的 vue 是一个全新的 vue, 并非我们操作的

我们需要导入原型链已经绑定上属性的哪个 vue

所以, 第一步 应该导入我们的vue:

 imort vue rom '@/main.js';

第二步 改一下 main.js, 将 vue 暴露出去

在这里插入图片描述

在这里插入图片描述

Solution2

第二种方法就是, 哪个外部js 文件用到, 那就在哪个文件里再导入一下

但是这样就有了一个问题,

如果, Vue 实例 原型链上 绑定了六个库的对象

并且所有外部文件都需要用到这六个

那只能每个外部js文件都导入六个, 这可就麻烦大发了

强推第一种方法, 暴露Vue


版权声明:本文为weixin_44510468原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。