有时候在vue项目中,普通js文件需要调用一些公共方法,但是我们公共方法都挂载在了vue原型对象上面
在.vue文件中,使用this.的方式获取到vue实例,但是在单独的js文件中的this指向的是window,所以js文件中的this是指向不到vue实例的,所以会报错
方式一:通过将vue的实例对象在main.js文件中导出,在需要的地方引入main.js文件
//main.js文件中
import Vue from 'vue';
import http from '@/utils/comm.js'
Vue.prototype.$http=http //$http挂载到vue原型上的一个方法
var vue=new Vue({
el: '#app',
render: h => h(App)
}).$mount('#app');
})
export default vue
import vue from '../main.js'
console.log(vue,'vue实例')
console.log(vue.$http(),'vue实例上的方法调用')
方式二:在js文件中 1.引入Vue 2.实例化Vue 3.从原型对象上面调用方法
//任意js文件
//引入vue
import Vue from "vue"
//必须实例化
var vm = new Vue()
//调用方法
vm.$http()

在Vue项目中,当普通JS文件需要调用挂在Vue原型对象上的公共方法时,由于this指向问题会遇到困难。文章介绍了两种解决方案:一是通过在main.js中导出Vue实例并在需要的地方引入;二是直接在JS文件中引入Vue,实例化后调用原型上的方法。

1万+

被折叠的 条评论
为什么被折叠?



