vue2.x组件内嵌套组件,类似于select和option

news/2024/7/10 0:35:31 标签: javascript, vue

这里简单讲解下类似于
在这里插入图片描述
这种组件的封装,其使用代码如下
Option可用v-for循环即可达到效果

	<Select v-model="search">
	  <Option :label="x" :value="xx" />
	</Select>

这里只讲讲值的同步,具体的样式这些自己想办法
**1.**引入select和option组合

<template>
  <div class="ul">
    <Select v-model="seacher" v-if="isShow">
      <Option :value="v" :label="l" />
    </Select>
    <input
      type="text"
      readonly
      v-model="seacher"
      @click="isShow = !isShow"
      placeholder="choose"/>
  </div>
</template>

<script>
import Select from "./select.vue";
import Option from "./option.vue";
export default {
  components: {
    Select,
    Option
  },
  provide () {
    return {
      setShow: this.show
    }
  },
  data() {
    return {
      v: "1",
      isShow: false,
      l: "3333333",
      seacher: ""
    };
  },
  methods: {
    show () {
      this.isShow = false
    }
  }
};
</script>

<style scoped></style>

**2.**select.vue

<template>
  <div class="sl">
    <slot />
    <div>
      {{setChooses}}
    </div>
  </div>
</template>

<script>
export default {
  provide() {
    return {
      setChoos: this.look
    };
  },
  props: {
    value: String
  },
  data() {
    return {
      setChooses: this.value
    };
  },
  // watch: {	这里的watch没起作用所以我直接下面的look中修改
  //   setChooses(newVal) {
  //     this.$emit("input", newVal);
  //   }
  // },
  methods: {
    look(e) {
      this.setChooses = e;
      this.$emit("input", e);
    }
  }
};
</script>

<style scoped></style>

3.option.vue

<template>
  <div class="op">
    <span @click="change" class="opt">{{ label }}</span>
  </div>
</template>

<script>
export default {
  inject: ["setChoos", "setShow"],
  props: {
    label: {
      type: String
    },
    value: String
  },
  methods: {
    change() {
      this.setChoos(this.value);
      this.setShow()
    }
  }
};
</script>

<style scoped>
.opt {
  cursor: pointer;
}
</style>



http://www.niftyadmin.cn/n/1064976.html

相关文章

python输入多行_python输入多行字符串的方法总结

Python中输入多行字符串&#xff1a; 方法一&#xff1a;使用三引号 >>> str1 Le vent se lve, il faut tenter de vivre. 起风了&#xff0c;唯有努力生存。 &#xff08;纵有疾风起&#xff0c;人生不言弃。&#xff09; >>> str1 Le vent se lve, il fau…

JQ前台select 元素(下拉框) 设置当前选中

javascript //JQ var index $("#select_id ").get(0).selectedIndex; $("#select_id ").get(0).selectedIndex index-1;

nunit在.net项目中的使用二(配置)

目前nunit的老版本不支持.net framework 4.0程序的测试。运行4.0程序集需要下载nunit的新版本 http://www.nunit.org/ 目前我使用的版本是nunit 2.5.5&#xff0c;但是发现下断点了以后不能调试。于是gogole了一下&#xff0c;发现这篇文章http://frater.wordpress.com/2010/05…

log4net使用简介

平常我们在开发网站时&#xff0c;有一些比较重要的地方需要添加日志记录。一般日志记录分为两种&#xff1a;1&#xff09;在数据库中添加一张日志表&#xff0c;用来记录用户操作并给用户提醒&#xff08;用户可以看到&#xff09;。 2&#xff09;在系统中添加一个日志文件&…

定制自己的BibTex Style (bst)

虽然BibTex Style 式样丰富、种类繁多&#xff0c;但有时还是会需要制作自己的。.bst虽然是文本文件&#xff0c;但由于其语法比较底层&#xff0c;读起来比较吃力&#xff0c;相关文献也非常少&#xff0c;因此直接修改.bst虽然是最为自由可控的方法&#xff0c;但并不推荐。比…

python cookbook 中文百度云_Python Cookbook(第3版) 中文版 pdf完整版[3MB]

内容介绍热点排行相关文章下载地址↓ Python Cookbook&#xff08;第3版&#xff09;中文版介绍了Python应用在各个领域中的一些使用技巧和方法&#xff0c;其主题涵盖了数据结构和算法&#xff0c;字符串和文本&#xff0c;数字、日期和时间&#xff0c;迭代器和生成器&#x…

C# list 排序 list删除元素

list.OrderBy(item1 > item1).ToList();//list double 排序for (int i 0; i < 100;i){list.RemoveAt(i);//根据下标删除(正向删除)int count100-1-i;list.RemoveAt(count);//根据下标删除&#xff08;返向删除&#xff09;}

W3C school PHP学习教程

http://www.w3school.com.cn/php/转载于:https://www.cnblogs.com/mfryf/archive/2012/02/13/2349345.html