Vue的最新版本下自定义组件报错

安装组件的时候会报错:
vue.common.js?e881:481 [Vue warn]: Failed to mount component: template or render function not defined.
(found in <Root>)

试过改
vue$: 'vue/dist/vue.common.js'

以下是主要代码,项目的主要文件

// main.js
import Vue from 'vue'
import App from './App'
import router from './router'
import preview from './components/test'

Vue.config.productionTip = false
Vue.use(preview)
/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  template: '<App/>',
  components: { App }
})
// 组件的入口文件index.js
import Vue from 'vue'
let Preview = Vue.extend(require('./vue_preview.vue'))
let myPreview = {
  install: function (vue) {
    let instance
    instance = new Preview()
    instance.vm = instance.$mount()
    document.body.appendChild(instance.vm.$el)
    vue.prototype.$preview = function (obj, event) {
      // 拓展方法
    }
  }
}

export default myPreview

组件的内容:
组件的tempalte

调用组件的方式

<div class="hello" @click="$preview({item: '../assets/logo.png'})">点击预览</div>
阅读 3.2k
1 个回答

很奇怪,在vue2.1.3使用是没有问题的,但是在2.4.2(最新)的使用就出现了这个问题

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