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 相关文章推荐
用JS实现的一个include函数
Jul 21 Javascript
JavaScript 无符号右移赋值操作
Apr 17 Javascript
用Javascript获取页面元素的具体位置
Dec 09 Javascript
JavaScript中循环遍历Array与Map的方法小结
Mar 12 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
Jul 18 Javascript
教你JS中的运算符乘方、开方及变量格式转换
Aug 09 Javascript
vue子组件使用自定义事件向父组件传递数据
May 27 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
Jun 21 Javascript
webpack2.0配置postcss-loader的方法
Aug 17 Javascript
Node爬取大批量文件的方法示例
Jun 28 Javascript
微信小程序中target和currentTarget的区别小结
Nov 06 Javascript
jquery实现点击左右按钮切换图片
Jan 27 jQuery
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
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
ThinkPHP分页类使用详解
2014/03/05 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
用jQuery模拟select下拉框的简单示例代码
2014/01/26 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python匹配中文的正则表达式
2016/05/11 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
C#笔试题
2015/07/14 面试题
Why do we need Unit test
2013/01/03 面试题
总经理助理职责
2014/02/04 职场文书
仓管员岗位职责
2015/02/03 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
mysql如何配置白名单访问
2021/06/30 MySQL
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python