vue.js无法找到元素#app

时间:2017-10-03 15:02:45

标签: unit-testing vue.js

学习自定义插件,我试图测试一个虚拟DOM

import Vue from 'vue'
import MyPlugin from '@/plugins/MyPlugin'

Vue.use(MyPlugin)

describe('MyPlugin', () => {
  let vm

  beforeEach(() => {
    vm = new Vue({
      template: '<div id="app" class="container" v-demo:hello.a.b="msg"></div>',
      el: '#app',
      data: {
        msg: 'hello!'
      }
    }).$mount()
  })

  it('should run', () => {
    Vue.myMethod()
    console.log('INNER: ', vm.$el.innerHTML)
    expect(true).to.equal(true)
  })
})

但是我收到了错误:

错误日志:&#39; [Vue警告]:找不到元素:#app&#39;

尚未在模板中定义??

感谢您的反馈

1 个答案:

答案 0 :(得分:0)

el属性用于指定当前在DOM中安装Vue实例的元素。

您无法在Vue实例的模板中指定该元素,因为它需要在DOM渲染之前安装在DOM上的某个位置。

您需要将一个标识为#app的元素添加到您的Vue实例之外的html中,并从其模板中的div中删除id="app"