vue中的v-bind是什么

ann*_*123 2 javascript vue.js

我从Vue开始,然后关注Traversy Media在YouTube上的视频教程

在那里他使用了v-bind,但是我没有正确解释它们是什么(或者至少我无法理解)

出于某种原因,我仍然觉得文档难以理解。

这就是我们正在做的。

<template>
  <div id="app">
    <p>{{msg}}</p>
    <Todos v-bind:todos="todos" />
  </div>
</template>

<script>
import Todos from "./components/todo.vue";
let todo = [
  {
    name: "Rohit",
    title: "Full Stack Developer"
  },
  {
    name: "Varun",
    title: "head of marketing"
  },
];

export default {
  name: "app",
  components: {
    HelloWorld,
    Todos
  },
  data() {
    return {
      msg: "hello",
      todos: todo
    };
  }
};
</script>
Run Code Online (Sandbox Code Playgroud)

问题:1 有人可以理解这段代码吗?

 <Todos v-bind:todos="todos" />
Run Code Online (Sandbox Code Playgroud)

像什么是v-bind,以及为什么我们要使todo的值等于string?(我知道他最终将待办事项作为道具传递给子组件)

然后在todo.vue中,他正在做这样的事情

<template>
  <div v-bind:key="todo.id" v-for="todo in todos">
      <h3>{{todo.title}}</h3>
 </div>
</template>

<script>
export default {
  name: "Todos",
  props: ["todos"] 
};
</script>
Run Code Online (Sandbox Code Playgroud)

问题2:这让我感到非常恐惧。首先,在导出默认值中,为什么他要在props中使用数组? props: ["todos"]?从他们传递字符串的样板代码开始,他们只是做了这样的事情, props: {msg: String}所以为什么props: ["todos"]在这里?

export default {
  name: "HelloWorld",
  props: {
    //We are defining the message type here
    msg: String
  }
};
Run Code Online (Sandbox Code Playgroud)

问题3: 最后在这行

 <div v-bind:key="todo.id" v-for="todo in todos">
      <h3>{{todo.title}}</h3>
Run Code Online (Sandbox Code Playgroud)

我了解执行此操作的原因,v-bind:key="todo.id"但是又有什么是v-bind?我们在哪里使用它?

Sup*_*rDJ 5

Q1

在Vue中,您可以将道具传递给子组件。如果您使用过:todos="todos"todosprop将等于字符串,todos但是带有v-bind:todos或简称:todos为prop的javascript变量todos。这是todosdata功能

Q2

在Vue中,您可以通过不同的方式引用道具。在数组中声明它们只是短一些,但有一个缺点,就是您无法验证道具。在对象中声明道具时,可以指定道具的类型,例如。字符串,数组,对象等。也可以声明默认值并指定所需的道具。

props: {
   msg: {
     type: String,
     required: true,
     default: ''
   }
}
Run Code Online (Sandbox Code Playgroud)

Q3

提供的例子是行不通的,因为没有idlet todo公正nametitle。所以可行的是:

<div v-bind:key="i" v-for="(todo, i) in todos">
Run Code Online (Sandbox Code Playgroud)

同样,可以只使用:key="i"。钥匙可以看作是一个钥匙id。使用它是为了让Vue知道循环中的哪个元素。