javascript - VueJS 独立组件事件

标签 javascript angular vue.js vuejs2

我有一个组件通过总线发出事件,如下所示。同一组件需要在另一个组件上包含两次。我希望发出的事件填充不同的变量;

    //component.vue
    <template>
        <div>
            Hello there?
            <a @click="changed">New</a>

            <ol>
               <li v-for="option in list">
                   <div class='row justify-content-start'>
                      <div class='col-sm-6'><input v-model="option.value" type='text' placeholder="key"/></div>
                      <div class='col-sm-6'><input v-model="option.name" type='text' placeholder="Name"/></div>
                   </div>
               </li>
            </ol>
        </div>
    </template>
    <script>
      export default{
            props:['options','iscolumn'],
            data(){
                  return {list:this.options,item:{name:'',value:''}}
            },
            methods:{
                  changed(){
                        $bus.$emit('add-option',this.item,this.iscolumn);
                  }
            }
      }
    </script>
/** root.vue **/

<template>
      <div>
            <h3>Rows</h3>
            <div><rows :options="rows" :iscolumn="false"/></div>


            <h3>Columns</h3>
            <div><rows :options="columns" :iscolumn="true" /></div>
      </div>
</template>

<script>
      export default{
            components:{'rows':require('./component')},
            data(){
                  return {
                        columns:[],rows:[]
                  }
            },
            created(){
                  this.$bus.$on('add-option',(option,iscolumn)=>{
                        if (is_column) {this.columns.push(option);}
                        else this.rows.push(option);
                  })
            }
      }
</script>

当我从根目录单击新建 时,列和行都会被填充。 寻找每个组件都是独立的情况,无法理解它们如何共享变量。 任何帮助将不胜感激。

最佳答案

组件分配唯一的键属性:

<template>
    <div>
        <h3>Rows</h3>
        <div><rows key="rows1" :options="rows" :iscolumn="false"/></div>

        <h3>Columns</h3>
        <div><rows key="rows2" :options="columns" :iscolumn="true" /></div>
    </div>
</template>

关于javascript - VueJS 独立组件事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52350242/

相关文章:

javascript - Parse.com : How to paginate results from a Parse. 查询?

javascript - 选择具有最小值的选项

javascript - 将js文件导入到ts文件中

angular - 如何在 S3 上托管的 Angular 4 网站中隐藏基本 href

javascript - 捕捉/监听函数的执行

javascript - Angular 6 复选框过滤器覆盖之前的复选框

javascript - 等待 Angular 5 中的 Http 响应

vue.js - 如何从 nuxt js 组件中的 node_modules 文件夹动态加载 svg 图标?

vue.js - 自动滚动div

javascript - 如何在 vue js 中将从 firebase 检索到的数据显示到标题标记 <h1>{{ }}</h1> ?