首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue js -多个组件,每个组件具有不同的初始值

Vue js -多个组件,每个组件具有不同的初始值
EN

Stack Overflow用户
提问于 2020-01-11 07:43:43
回答 2查看 1.4K关注 0票数 2

我正在Vue js中创建一个multiselect,但我不明白的是,如何通过每个不同的初始选择值(v-model)获得组件的多个实例。由于父组件上选定的数据,每个组件都获得相同的初始值。我也应该在这里使用道具而不是v型吗?还是应该将数据对象从父对象移动到组件本身?

Wat我想要

组件一应该具有初始选择"{ id:“0,文本:”one“}和

组件2应具有初始选择"{ id:“1,文本:”2“}

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

<div id="app">
  <multi-select v-model="selected" :options='[{ id: "0", text: "One"}, { id: "1", text: "Two"}'></multi-select>
  <multi-select v-model="selected" :options='[{ id: "0", text: "One"}, { id: "1", text: "Two"}'></multi-select>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>

  Vue.component("multi-select", {

      props: ["options", "value"],

      template: `
        <div>
          <div v-for="option in selectedOption">{{ option.text }}</div>
          <hr>
          <div v-for="option in options">{{ option.text }}</div>
        </div>
      `,

      computed: {
        selectedOption() {
          return this.value;
        }
      }
  });

  new Vue({
    el: "#app",
    data: {
      selected: [{ id: "0", text: "One"}],
    }
  })

</script>

</body>
</html>
EN

回答 2

Stack Overflow用户

发布于 2020-01-11 07:47:02

将索引作为道具传递,您的子组件可以使用此索引来确定默认值。

代码语言:javascript
复制
v-bind:index="0"
v-bind:index="1"
票数 2
EN

Stack Overflow用户

发布于 2020-01-11 09:09:32

v-model是指所选的值,请注意将两个multiselects分配给相同的变量。

一个可能的解决方案是创建另一个变量,比如selector2selector1

并相应地分配你的v模型。

代码语言:javascript
复制
data: {
      selected1: [{ id: "0", text: "One"}],
      selected2: [{ id: "1", text: "Two"}],
    }

以及执行任务

代码语言:javascript
复制
<div id="app">
  <multi-select v-model="selected1" :options='[{ id: "0", text: "One"}, { id: "1", text: "Two"}'></multi-select>
  <multi-select v-model="selected2" :options='[{ id: "0", text: "One"}, { id: "1", text: "Two"}'></multi-select>
</div>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59692581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档