Vue.js 组件不工作

新手上路,请多包涵

我似乎无法弄清楚如何使组件工作。没有组件它工作正常(注释代码)。

这是我的 HTML:

 <strong>Total Price:</strong> <span v-text="total"></span><br>
<strong>CPC:</strong> <span v-text="cpc"></span>

这是我的 Vue.js 代码:

 Vue.component('my-component', {
    // data: function() {
    //     return { interval: 0, exposure: 0, clicks: 0, total: 0, cpc: 0 }
    // },
    computed: {
        total: function () {
            return(this.clicks * (this.exposure * 0.001 / 10) / 700).toFixed(8)
        },
        cpc: function () {
            return((this.total) / (this.clicks > 0 ? this.clicks : 1)).toFixed(8)
        }
    }
});

const app = new Vue({
    el: '#app',
    data: {
        interval: 0, exposure: 0, clicks: 0, total: 0, cpc: 0
    },
    // computed: {
    //     total: function () {
    //         return(this.clicks * (this.exposure * 0.001 / 10) / 700).toFixed(8)
    //     },
    //     cpc: function () {
    //         return((this.total) / (this.clicks > 0 ? this.clicks : 1)).toFixed(8)
    //     }
    // }
});

1)除非我取消注释注释代码,否则这不起作用。

2)JSFiddle:http: //jsfiddle.net/tjkbf71h/3/

原文由 DanVeira 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 372
2 个回答

您需要在 HTML 标记中包含该组件:

 <div id="app">
    <my-component></my-component>
</div>

然后,您希望作为此组件的一部分显示的 HTML 需要位于模板、内联或其他方式中:

 Vue.component('my-component', {
    template: '<div>Your HTML here</div>',
    data: function() {
         return { interval: 0, exposure: 0, clicks: 0, total: 0, cpc: 0 }
    },
//

原文由 jaredsk 发布,翻译遵循 CC BY-SA 3.0 许可协议

你没有为你的组件定义模板,所以 Vue 不知道在哪里以及如何渲染你的组件。

您可以使用内联模板字符串,将其挂载到模板标签,或者使用单文件组件 - 使用 webpack 或 browserify。

首先,我建议你阅读文档

https://v2.vuejs.org/v2/guide/components.html

原文由 Belmin Bedak 发布,翻译遵循 CC BY-SA 4.0 许可协议

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