VueJS 数据()不工作

VueJS data() not working

我正在尝试制作一个 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 warn]: 属性 或方法 "name" 未在实例上定义,但在渲染期间被引用。确保在数据选项中声明响应式数据属性。 (在组件中找到)

有什么想法吗? 谢谢

在模板中调用组件

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>

在您的 script 标签中使用:

而不是 export default
module.exports = {
  data() {
    return { counter: 1 }
  }
}

这应该适合你

问题是您正试图从该文件加载组件 'example' 但您没有给它命名。你应该使用:

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

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

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

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

import Example from ./example

另请查看 以获取更多信息,以防您使用 Babel