【问题标题】:Component model from Vueify is empty来自 Vueify 的组件模型为空
【发布时间】:2017-06-11 13:51:40
【问题描述】:

我刚刚开始使用 Vue.js,这是我第一次尝试使用 Vueify 和 Browserify。 我制作了这个简单的组件来从 Json 生成一个表格,但是我的组件应该显示的 div 是空的,我没有收到任何错误,并且 Vue 开发工具扩展显示了我的 Json 以及所有正确的数据。我可能在这里做了一些非常愚蠢的事情,但我看不到它......

我的 index.html:

<div class="content">
        <div id="vuePersonagens"></div>
        <script src="<?php echo get_stylesheet_directory_uri(); ?>/js/components/Personagens/build.js"></script>
</div>

人物角色.vue:

<template>
<div>
  <h1>Personagens</h1>
  <table v-for="personagem in personagens" class="table table-striped table-hover">
    <thead>
      <th>Nome</th>
      <th>Raça</th>
      <th>Classe</th>
      <th>Level Efetivo</th>
    </thead>
    <tbody>
      <tr>
          <td>{{ personagem.nome }}</td>
          <td>{{ personagem.raca }}</td>
          <td>{{ personagem.classe }}</td>
          <td>{{ personagem.level }}</td>
      </tr>
    </tbody>
  </table>
</div>
</template>

<script lang="ts">
  import * as Vue from 'vue'
  import Component from 'vue-class-component'

  @Component({
      props: {
        personagens: [{ "nome": String, "raca": String, "classe": String, level: Number}]
      }
  })
  export default class Personagens extends Vue {
        personagens: [{ "nome": String, "raca": String, "classe": String, level: Number}]
  }
</script>

start.js:

var Vue = require('vue')
var Personagens = require('./Personagens.vue')

new Vue({
   el: '#vuePersonagens',
   data: {
     personagens: [{ "nome": "Banjo", "raca": "Lizarkin", "classe": "Bard/Cleric", level: 8}]
   }
})

package.json:

{
  "name": "cleave",
  "version": "1.0.0",
  "description": "JSON",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://hsaldanha@bitbucket.org/hsaldanha/cleave.git"
  },
  "author": "Heitor Saldanha",
  "license": "ISC",
  "homepage": "https://bitbucket.org/hsaldanha/cleave#readme",
  "dependencies": {
    "@types/es6-promise": "0.0.32",
    "vue": "^2.3.4",
    "vue-class-component": "^5.0.1"
  },
  "devDependencies": {
    "vueify": "^9.4.1"
  },
  "browser": {
    "vue": "vue/dist/vue.common.js"
  }
}

Console showing empty DIV

Vue devtools shows my Json

【问题讨论】:

    标签: javascript json browserify vuejs2 vueify


    【解决方案1】:

    您需要在您的start.js 文件中注册Personagens.vue 组件。

    您可以在全局范围内执行此操作:

    Vue.component('personagens', Personagens);
    

    或者在根组件中:

    new Vue({
      el: '#vuePersonagens',
      components: { personagens: Personagens },
      data: {
        ...
      }
    })
    

    那么,你还需要在模板中实际包含组件的标签:

    <div id="vuePersonagens">
      <personagens :personagens="personagens"></personagens>
    </div>
    

    【讨论】:

    • 非常感谢!现在由于某种原因我的 v-for 没有在我的表中生成行,知道为什么吗?我意识到 v-for 应该在 TR 标签中,但它仍然不起作用....
    • 您还需要通过标签中的personagens 属性传入数据。我已经更新了答案。您有很多名为personagens 的东西,这令人困惑。我会重命名你的变量以使其更容易区分。此外,这些是 Vue 中非常基本的概念,我会阅读他们的文档:vuejs.org/v2/guide
    • 非常感谢您的回答,我会仔细阅读文档。
    猜你喜欢
    • 1970-01-01
    • 2016-08-15
    • 2023-03-26
    • 2016-08-06
    • 2011-06-13
    • 2016-01-27
    • 2016-08-03
    • 1970-01-01
    • 2019-05-15
    相关资源
    最近更新 更多