一个自定义不用<select>标签的组件

1、Select.vue

<template>
  <div>
    <button @click="change" >{{curselect}}</button>
    <ul class="list" v-if="selectShow">
      <li v-for="item of currentList" @click="changeselect(item)" >{{item}}</li>
    </ul>
  </div>
</template>

<style scoped>
  li{list-style-type:none;}
  li:hover{ background-color: aquamarine}
  button{border:0px;background-color:transparent;}

</style>

<script>
  import Select from './Select.js';
  export default Select;
</script>
   

2、Select.js

export default {
  name: 'HdSelect',
  data(){
    return{
      currentList:[],
      selectShow:false,
      curselect:''
    }
  },

  props:{
    list:{
      type:Array,
      default:[]
    }
  },

  watch:{
    data: function () {
      this.makeList();
    }
  },

  methods:{
    makeList(){
      this.currentList = this.list
      this.curselect = this.list[0]
    },
    change(){
      this.selectShow = !this.selectShow
    },
    changeselect(index){
      this.curselect = index;
      this.selectShow = false;
    },
  },

  mounted:function(){
    this.makeList();
  }
}

index.js

import mySelect from './Select.vue';
const HdSelect = {
  install:function(Vue){
    Vue.component('HdSelect',mySelect)
  }
}

export default HdSelect;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问:你最喜欢异性身上什么特点? 答:温柔,聪慧,善解人意。单纯一点,不要太功利,女人一功利就特别俗。当然,我摆脱不...
    虚怀若谷8阅读 564评论 0 1
  • 家长部分 1.刘涵事件 同学之间发生的都是小事,孩子们对同学都不记仇,往往在意的是家长。家长的引导对孩子影响很大。...
    玲森森阅读 345评论 0 0
  • 美好的雪 我很喜欢那些有你和灯光陪伴着奔跑的夜晚 在没有去的日子 我受了西北风的伤寒 我的面容扭曲 体质虚弱 我只...
    钟登厅阅读 498评论 0 2
  • 今天是我的夜班,没办法陪儿子学习了,放学后跟儿子开了视频,嘱咐了他要好好复习,偷偷的开了监控,看到儿子乖乖的写着作...
    郭家诚妈妈阅读 234评论 0 0