1. <template>
  2. <div>
  3. <ul class="skill">
  4. <li v-for='item of list' v-on:click='selectLi(item)'>{{item}}</li>
  5. </ul>
  6. </div>
  7. </template>
  8.  
  9. <script>
  10. export default {
  11. name:'myul',
  12. props: ['list'],
  13. methods: {
  14. selectLi: function(item) {
  15. //$emit触发当前实例上的自定义事件 receive
  16. this.$emit('receive', item);
  17. }
  18. }
  19. }
  20. </script>
  21. <style>
  22. ul, li {
  23. margin: 0;
  24. padding: 0;
  25. list-style: none;
  26. }
  27. .skill li {
  28. font-size: 18px;
  29. line-height: 2rem;
  30. height: 2rem;
  31. padding-left: 5px;
  32. cursor: pointer;
  33. }
  34. .skill li:hover {
  35. background-color: #008b45;
  36. }
  37. </style>
  1. <template>
  2. <div>
  3. <div id="selectWrap">
  4. <div class="searchBox">
  5. <input type="text" :value="selectVal" @click='ulShow = !ulShow'/>
  6. <a href="#" rel="external nofollow" class="search" v-text='btnName'></a>
  7. </div>
  8. <div>
  9. <myul v-show='ulShow' v-bind:list='list' v-on:receive='changeVal'></myul>
  10. </div>
  11. </div>
  12. </template>
  13.  
  14. <script>
  15. import Vue from 'vue'
  16. import myul from './myul'
  17. Vue.component("myul", myul)
  18. export default {
  19. name:'myselect',
  20. data() {
  21. return {
  22. ulShow: false, //默认ul不显示,单击input改变ul的显示状态
  23. selectVal: '' //选项值,input的值与选项值动态绑定
  24. }
  25. },
  26. props: ['btnName', 'list'],
  27. methods: {
  28. changeVal(value) {
  29. this.selectVal = value
  30. }
  31. }
  32. }
  33. </script>
  34. <style>
  35. #selectWrap {
  36. width: 250px;
  37. padding: 2rem;
  38. background: #4682b4;
  39. }
  40. .searchBox input, .searchBox a {
  41. line-height: 1.5rem;
  42. height: 1.5rem;
  43. margin-bottom: 1rem;
  44. padding: 0 5px;
  45. vertical-align: middle;
  46. border: 1px solid #aaa;
  47. border-radius: 5px;
  48. outline: none;
  49. }
  50. .searchBox a {
  51. display: inline-block;
  52. text-decoration: none;
  53. background-color: #b1d85c;
  54. }
  55. </style>

  

  1. // The Vue build version to load with the `import` command
  2. // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
  3. import Vue from 'vue'
  4. import myselect from './myselect'
  5.  
  6. Vue.config.productionTip = false
  7.  
  8. /* eslint-disable no-new */
  9. new Vue({
  10. el: '#app',
  11. data: {
  12. data1: ['CSS', 'HTML', 'JavaScript']
  13. },
  14. components: {myselect},
  15. template: "<myselect btn-name='search' v-bind:list='data1' style='float: left;margin-right: 2rem;'></myselect>"
  16.  
  17. })

  

VUE:Select2的更多相关文章

  1. vue2组件之select2调用

    目前,项目中使用了纯前端的静态项目+RESTFul接口的模式.为了更好的对数据进行操作,前端使用了vue2的mvvm功能,但是由于不是单页面应用,所以,并没有涉及到其它的如vue-route等功能,也 ...

  2. 随手记录一下 Vue 下来框搜索 select2 封装成vue

    引入布局文件 <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css& ...

  3. vue 组建实现数据的双向绑定

    <!DOCTYPE html><html><head> <style>body {  font-family: Helvetica Neue, Aria ...

  4. 解决vue与传统jquery插件冲突

    比如基于jquery的select2插件,在vue下单独用有很多问题,其实对于这类插件,可以用vue的自定义指令和组件来包装,解决冲突的问题.引用官方vue1.0和2.0的两个例子,学习一下. 例子1 ...

  5. 比较好的前端方法库及一些vue如何引入静态文件

    https://select2.github.io/examples.html   select2 自动搜索带select选择 ## 表单提交 https://github.com/marioizqu ...

  6. 对vue生命周期/钩子函数的理解

    对于实现页面逻辑交互等效果,我们必须知晓vue的生命周期,才能愉快的玩耍,知道我们写的东西应该挂载到哪里,vue官方给出的api讲解的那叫一个简单啊,如下: 所有的生命周期钩子自动绑定this上下文到 ...

  7. Vue 实例中的生命周期钩子

    Vue 框架的入口就是 Vue 实例,其实就是框架中的 view model ,它包含页面中的业务处理逻辑.数据模型等,它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻 ...

  8. Vuejs自定义select2指令

    在做select2插件的时候遇到一些坑,最终解决如下: Vue.directive('select2', { inserted: function (el, binding, vnode) { var ...

  9. vue项目开发基本目录结构

    § 目录结构 . ├── build/ # Webpack 配置目录 ├── dist/ # build 生成的生产环境下的项目 ├── src/ # 源码目录(开发都在这里进行) │ ├── ass ...

随机推荐

  1. CodeBlocks 配置

    CodeBlocks 配置 Code::Blocks 17.12 时间:2019.6 下载网址 http://www.codeblocks.org/downloads/26 ,这里选择的是 mingw ...

  2. springCloud-Hystrix熔断器

    熔断器的原理很简单,如同电力过载保护器.它可以实现快速失败,如果它在一段时间内侦测到许多类似的错误,会强迫其以后的多个调用快速失败,不再访问远程服务器,从而防止应用程序不断地尝试执行可能会失败的操作, ...

  3. NOIP比赛中如何加速c++的输入输出

    NOIP比赛中如何加速c++的输入输出 在竞赛中,遇到大数据时,往往需要更快的读取方式.由于比赛中输出一般规模较小,本文只讨论输入如何加速. 现在我们生成1000000个随机数,构成1000*1000 ...

  4. [游戏复刻] Super Mario Brothers(1985. Famicom)

    10/20 第一版,导入了地图,设置了碰撞块

  5. 数据结构与算法之排序算法(python实现)

    1.冒泡排序 冒泡排序的原理是依次比较相邻的两个数,如果前一个数比后一个数大则交换位置,这样一组比较下来会得到该组最大的那个数,并且已经放置在最后,下一轮用同样的方法可以得到次大的数,并且被放置在正确 ...

  6. RBAC授权

    RBAC RBAC使用rbac.authorization.k8s.io API Group 来实现授权决策,允许管理员通过 Kubernetes API 动态配置策略,要启用RBAC,需要在 api ...

  7. 怎样使用js将文本复制到系统粘贴板中

    需要使用到三个document方法: 1. document.execCommand(); 执行某个命令 2. document.queryCommandSupported(); 检测浏览器是否支持某 ...

  8. c# ServiceStack web 搭建

    用的是4.5的.net版本 构建model /// <summary> /// 通过id获取资料 /// </summary> //[Route("/GetStude ...

  9. 【原创】大叔经验分享(80)openresty(nginx+lua)发邮件

    nginx配置 lua_package_path "/usr/local/openresty/lualib/resty/smtp/?.lua;;"; lua_need_reques ...

  10. JS基础_对象的方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...