【问题标题】:Importing Vue (Vue.js) Component Results in No Errors, But Doesn't Display导入 Vue (Vue.js) 组件没有错误,但不显示
【发布时间】:2017-12-17 09:44:34
【问题描述】:

Vue 的基本实现在这里作为测试运行,我在将数据分解为组件时遇到了一些问题。这是 HTML:

<body>
    <header id="main-header">
       <custom-header></custom-header>
    </header>
</body>

我正在实例化一个 Vue 实例并将其绑定到#main-header:

import CustomHeader from '../header.vue';

const header = new Vue({
    el: '#main-header',
    data: chx,
    components: {
        'custom-header': CustomHeader
    },
    methods: {
        run: function() {
            console.log('run');
        },
        print: function() {
            window.print()
        },
        save: function() {
            console.log('save');
        }
    }
});

以及导入的模板:

<template>
    <div class="header-menu">
        <img class="logo" src="images/logo.png">
    </div>
    <div class="header-menu">
        <h1 id="date-range-label"><span v-show="dates.startFormatted">{{dates.startFormatted}} - {{dates.endFormatted}}</span></h1>
        <i v-on:click="settingsVisible = !settingsVisible" id="settings" class="fa fa-2x fa-cog settings-icon no-print"></i>
    </div>
</template>

控制台或 Webpack 进程不会记录任何错误。不知道从这里去哪里,因为没有任何记录。 &lt;header&gt; div 在生成的 HTML 中保持为空。

【问题讨论】:

  • 你的模板需要有一个根元素
  • @thanksd 很抱歉,我不知道你的意思。
  • &lt;div&gt; 元素的根中有两个 &lt;div&gt; 元素。您需要将两者都包装在另一个 &lt;div&gt; 中或更改您的整体结构。

标签: webpack vue.js webpack-2


【解决方案1】:

您的自定义标题组件在其模板的根部有两个div 元素。一个组件只能有一个根元素。

在您的情况下,将内容包装在 div 元素中可能是最简单的:

<template>
  <div>
    <div class="header-menu">
      <img class="logo" src="images/logo.png">
    </div>
    <div class="header-menu">
      <h1 id="date-range-label"><span v-show="dates.startFormatted">{{dates.startFormatted}} - {{dates.endFormatted}}</span></h1>
      <i v-on:click="settingsVisible = !settingsVisible" id="settings" class="fa fa-2x fa-cog settings-icon no-print"></i>
    </div>
  </div>
</template>

【讨论】:

  • 这开始抛出错误,这绝对是进步。我收到的错误是:"TypeError: Cannot read property 'startFormatted' of undefined" 但是,此属性包含在 chx 的父 Vue 数据对象中。使对象中包含的数据对组件本身可用的最佳做法是什么?
  • 如果你不通过 props 向子组件提供数据,它将无法访问它。这是一个单独的问题,我会阅读docs on components
猜你喜欢
  • 2019-11-28
  • 1970-01-01
  • 2019-06-13
  • 2016-12-13
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 2020-05-14
相关资源
最近更新 更多