5

我正在尝试制作一个 VueJS 应用程序,但即使使用最简单的示例也失败了。我正在使用 Laravel 5.3,并预先构建了对 VueJS 的支持(版本 1,我也尝试了版本 2)。

这是我的 Example.vue 组件

<template>
    <div class="profile">
        {{ name }}
    </div>
</template>

<script>
    export default {
        data () {
            return {
                name: 'John Doe'
            }
        }
    }
</script>

这是主要代码

Vue.component('example', require('./components/Example.vue'));

const app = new Vue({
    el: '#app'
});

这是每次在控制台中出现的错误:

[Vue 警告]:属性或方法“名称”未在实例上定义,但在渲染期间被引用。确保在 data 选项中声明反应数据属性。(在组件中找到)

有什么想法有什么问题吗?谢谢

4

3 回答 3

2

在您的script标签中而不是export default使用:

module.exports = {
  data() {
    return { counter: 1 }
  }
}

这应该适合你

于 2016-10-08T22:34:10.277 回答
1

在模板中调用组件

Vue.component('example', {
  template: `<div class="profile">{{ name }}</div>`,
  data () {
return {
  name: 'John Doe'
}
  }
})

const app = new Vue({
  el: '#app'
})
<script src="https://unpkg.com/vue/dist/vue.js"></script>

<div id="app"><example></example></div>

于 2016-10-08T18:01:18.577 回答
0

问题是您正在尝试从该文件加载组件“示例”,但您没有为其命名。你应该使用:

<script>
   export default {
     name: 'example',
     data() {
       return {
         name: 'John Doe'
       }
     }
   }
</script>

或者通过以下方式加载组件(不确定是否需要扩展 .vue):

require('./exmaple').default();

如果您使用 Babel,您也可以使用以下语法加载组件而不给它们命名:

import Example from ./example

如果您使用 Babel,还可以查看这篇文章以获取更多信息

于 2016-10-18T14:24:03.530 回答