账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    将第三方插件放在 new Vue(){xxx}中和Vue.prototype.xxx=xxx的区别是什么?
    49
    0

    Vue.use(ElementUI)

    Vue.prototype.$axios = axios
    Vue.config.productionTip = false

    new Vue({
    el: '#app',
    router,
    store,
    //axios,
    i18n,
    template: '<App/>',
    components: { App }
    })

    在组件中使用$axios正常,this.$axios.get(可以正常执行

    但如果用下面这种方式就会提示TypeError: Cannot read property 'get' of undefined

    Vue.use(ElementUI)

    //Vue.prototype.$axios = axios
    Vue.config.productionTip = false

    new Vue({
    el: '#app',
    router,
    store,
    axios,
    i18n,
    template: '<App/>',
    components: { App }
    })

    那么这两种到底有什么区别呢?从我自己了解到的内容,只知道在prototpye中使用的是实例中的属性,在vue(){}中的是全局属性,按照这种逻辑来说 我注册到new vue(){}中不应该有问题啊,可是为什么不行呢,

    还有我理解Vue.use(ElementUI) 使用use方式的就是在使用标签库,我的理解对吗?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ゛夜灬零乱花寂づ 普通会员 1楼

      在 Vue 中,可以使用 Vue 的原型链和扩展来实现外部插件的导入和使用。

      在 Vue 中,可以直接在 Vue 实例中使用外部插件。例如,你可以这样导入和使用一个第三方插件:

      ```javascript import MyPlugin from 'my-plugin';

      new Vue({ el: '#app', plugins: [MyPlugin], }).$mount('#app'); ```

      在这个例子中,MyPlugin 是一个外部插件,我们使用 new Vue() 创建了一个 Vue 实例,并将其挂载到了 DOM 中。在这个 Vue 实例中,我们可以使用 this.$mount('#app') 方法将插件挂载到 Vue 实例的 DOM 中。

      另一个方法是使用 Vue 的扩展。扩展是在 Vue 中,将一个函数或方法添加到 Vue 实例的原型链上。例如,你可以这样导入和使用一个第三方插件:

      ```javascript Vue.prototype.myPlugin = function() { // 在这里添加插件的代码 };

      new Vue({ el: '#app', plugins: [myPlugin], }).$mount('#app'); ```

      在这个例子中,myPlugin 是一个外部插件,我们将其添加到了 Vue 实例的原型链上。在 Vue 实例中,我们可以使用 this.myPlugin() 方法来调用插件的函数。

      这两个方法的主要区别在于,插件的引入和使用是通过 import 或者 Vue.extend 的方式来实现的,而插件的实现和使用是通过 Vue.prototype 的方式来实现的。在 Vue 中,Vue.prototype 是一个特殊的作用域,它包含了 Vue 实例的所有数据和方法,包括 Vue.prototype.myPlugin

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部