【问题标题】:Vue.Js: List renderingVue.Js:列表渲染
【发布时间】:2021-01-27 20:21:13
【问题描述】:

我正在做这个小代码挑战:

我们提供了一些简单的Vue.js 模板代码。您的目标是首先将项设置为具有以下属性的三个对象的数组:

姓名 = Daniel,年龄 = 25 - 姓名 = 约翰,年龄 = 24 - 姓名 = Jen,年龄 = 31。

然后在 template 中,您应该显示一个无序列表 (UL),其中包含列表项 (LI)。每个列表项的内容应包含两个跨度 (SPAN),一个带有 name,另一个带有 age。 span 元素应该用一个空格分隔。

下面的代码在我尝试运行程序时没有任何反应。 (不确定是不是因为它在浏览器中)。

这是我的代码:

<template>
  <div id="app">
    <ul>
      <li v-for="item in items">
        {{name}} {{age}}
      </li>
    </ul>
  </div>
</template>

<script>
  export default {
    name: "App",
    data() {
      return {
        items: 
        [
          { name: 'Daniel' },
          { age: '25' },
          { name: 'John' },
          { age: '25' },
          { name: 'Jen' },
          { age: '31' }
        ]
      };
    }
  };
</script>

编辑评论部分

<template>
  <div id="app">
    <ul>
      <li v-for="({name,age}) in items">
        <span>{{name}}</span> <span>{{age}}</span>
      </li>
    </ul>
  </div>
</template>

<script>
  export default {
    name: "App",
    data() {
      return {
        items: 
        [
          {name: 'Daniel', age: '25'},
          {name: 'John', age: '25'},
          {name: 'Jen', age: '31'}

        ]
      };
    }
  };
</script>

【问题讨论】:

    标签: javascript vue.js


    【解决方案1】:

    您只需要在items 中创建三个对象,每个对象都有nameage。然后,在v-for 中,您可以解构数组中的每个项目并打印两个空格分隔的span 元素中的属性:

    new Vue({
      el: "#app",
      data() {
        return {
          items:  [
            { name: 'Daniel', age: '25' },
            { name: 'John', age: '25' },
            { name: 'Jen', age: '31' }
          ]
        };
      }
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
      
    <div id="app">
      <ul>
        <li v-for="({name,age}, index) in items" :key="index">
          <span>{{ name }}</span>{{ ' ' }}<span>{{ age }}</span>
        </li>
      </ul>
    </div>

    【讨论】:

    • 很好,感谢您的回复,一切正常,但是如果我想要两个跨度之间的空间怎么办?所以我得到丹尼尔25而不是丹尼尔25?泰!
    • @codetime 不客气。如果您运行上述 sn-p,此解决方案会在 nameage 之间添加一个空格
    • 这很奇怪,当我运行你的 sn-p 时它可以工作,但不在我的代码中,我用我的代码添加了一个编辑,现在不确定是什么原因造成的,它和你一样:O
    • @codetime 我用可能的修复更新了答案
    猜你喜欢
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    相关资源
    最近更新 更多