用 Vue.extend 创造的组件构造器和组件,默认是不集成 store 和 router 的。

 

比如 main.js 中的这个,其实是挂载在根组件 vm 中。并不是注入到全局 Vue 中。所以你用 Vue.extend 构造的理所当然没有了。但是,你用 Vue.mixin 注入的就是有的。

const vm = new Vue({
    router,
    store,
    render: h => h(App)
}).$mount('#app')

 

所以,如果你 extend 创造的组件,需要重新集成。

import fuck from './fuck.vue'

// Vue组件构造器
const Fuck = Vue.extend(fuck)

// 实例化组件
const instance = new Fuck({ /* ... */ })

// 集成 store
instance.$store = this.$store

// 集成 router
instance.$router = this.$router

// 挂载
instance.$mount('#app')

 

相关文章:

  • 2021-05-18
  • 2021-07-01
  • 2021-09-21
  • 2021-12-09
  • 2021-09-14
  • 2021-06-23
猜你喜欢
  • 2021-09-28
  • 2022-12-23
  • 2022-12-23
  • 2021-08-28
  • 2021-07-16
  • 2021-09-09
  • 2021-06-26
相关资源
相似解决方案