bootstrap select插件封装成Vue2.0组件


Posted in Javascript onApril 17, 2017

因为bootstrap-select功能比较强大,而且样式还不错,所以在项目使用了vue,所以,觉得对bootstrap-select进行封装。

html

<my-select :options="input.options" v-model="input.value" ref="typeSelect" :index="index" :childidx="childIdx" :load="load" :multiple="input.multiple" :method="change"></my-select>

js

// select 插件
Vue.component('vm-select', {
 props : ['options', 'value', 'multiple', 'method', 'load', 'index', 'childidx'],
 template : "<select :multiple='multiple' class='selectpicker' data-live-search='true' title='请选择' data-live-search-placeholder='搜索'><option :value='option.value' v-for='option in options'>{{ option.label }}</option></select>",
 mounted : function () {
 var vm = this;
 $(this.$el).selectpicker('val', this.value != null ? this.value : null);
 $(this.$el).on('changed.bs.select', function () {
 vm.$emit('input', $(this).val());
 if (typeof(vm.method) != 'undefined') {
 vm.method(vm.index, vm.childidx, this.value);
 }
 });
 $(this.$el).on('show.bs.select', function () {
 if (typeof(vm.load) != 'undefined') {
 vm.load(vm.index, vm.childidx);
 }
 });
 },
 updated : function () {
 $(this.$el).selectpicker('refresh');
 },
 destroyed : function () {
 $(this.$el).selectpicker('destroy');
 }
});

不得不提一下,在使用多个select的时候,在删除某一个selcet对象的时候,加载的值会发生改变,纠结了半天发现是vue自身的问题:因为vue对象有在重新渲染html的过程中会复用原来相同的vue对象,所以导致会导致selcet对象错位。解决方案:将每个select对象打上一个标签key。虽然可能导致性能的下降,但是不会导致错误。

bootstrap select插件封装成Vue2.0组件

vue官网

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript typeof 用法
Dec 28 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
Mar 02 Javascript
JS中的异常处理方法分享
Dec 22 Javascript
重写document.write实现无阻塞加载js广告(补充)
Dec 12 Javascript
jQuery基础_入门必看知识点
Jul 04 Javascript
原生js实现日期计算器功能
Feb 17 Javascript
兼容浏览器的js事件绑定函数(详解)
May 09 Javascript
原生JS实现图片网格式渐显、渐隐效果
Jun 05 Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 Javascript
加速vue组件渲染之性能优化
Apr 09 Javascript
在vue中使用回调函数,this调用无效的解决
Aug 11 Javascript
Vue全局事件总线你了解吗
Feb 24 Vue.js
JS简单获取当前日期和农历日期的方法
Apr 17 #Javascript
Vue.js仿Metronic高级表格(一)静态设计
Apr 17 #Javascript
react.js CMS 删除功能的实现方法
Apr 17 #Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
Apr 17 #Javascript
简单的JS控制button颜色随点击更改的实现方法
Apr 17 #Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 #jQuery
Vue分页组件实例代码
Apr 17 #Javascript
You might like
收音机发烧友应当熟知的100条知识
2021/03/02 无线电
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
传智播客学习之java 反射
2009/11/22 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
Python函数式编程指南(二):从函数开始
2015/06/24 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
python同步两个文件夹下的内容
2019/08/29 Python
多个python文件调用logging模块报错误
2020/02/12 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
J2EE面试题
2016/03/14 面试题
汉语专业应届生求职信
2013/10/01 职场文书
党建示范点实施方案
2014/03/12 职场文书
责任心演讲稿
2014/05/14 职场文书
2014年保管员工作总结
2014/11/18 职场文书
大学生逃课检讨书
2015/05/04 职场文书