vue select自定义组件动态列表

-------------------------------HelloWorld.vue---------------

<template>
  <div>
    <myAssemblys
      :selectty="selectty"
      :selectdVal="selectdVal"
     ></myAssemblys>
    <button @click="setType(1)">类型1</button>
    <button @click="setType(2)">类型2</button>
  </div>
</template>
<script>
  import myAssemblya from '@/components/myAssembly'
  // import Vue from 'vue'
  export default {
    data () {
      return {
        selectty:0,
        selectdVal:'b',
      }
    },
    components: {
      myAssemblys: myAssemblya
    },

    methods: {
      setType (ty) {
            this.selectty=ty;
      },

    },
  }
</script>
<style>

</style>

-------------------------------select组件--myAssembly.vue---------------

<template>
  <div class="show">
    <h1>选择的值: {{selectdVal}}</h1>
    <h1>选择的类型: {{selectty}}</h1>
    </p>
    <select v-model="selectdVal" name="fruit">
      <option v-for="(item,index) in basetable" :key="index" :value="item.value">{{item.name}}</option>
    </select>
  </div>
</template>
<script>
  let basetables =
    [
      {value: 'a', name: 'va'},
      {value: 'b', name: 'vb'},
      {value: 'c', name: 'vc'},
      {value: 'd', name: 'vd'}
    ]

  export default {
    props: {
      selectty: Number,
      selectdVal: '',
    },
    data () {
      return {
        basetable:JSON.parse(JSON.stringify(basetables)) ,
      }
    },
    methods: {
      f1 () {
      }
    },

    watch: {
      selectty: function (val) {
        this.selectdVal = 'b' + val
        //循环操作
        this.basetable.map(function(value,index,array){
          value.value = basetables[index].value + val
          value.name = basetables[index].name + val
        })

      },

    }

  }
</script>
<style scoped>
  .show {
    background-color: #42b983;
  }

</style>

 

-------------------------------------------效果---------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值