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 flash下fromCharCode和charCodeAt方法使用说明
Jan 12 Javascript
Javascript 各浏览器的 Javascript 效率对比
Jan 23 Javascript
jquery each()源代码
Feb 14 Javascript
jquery学习笔记 用jquery实现无刷新登录
Aug 08 Javascript
别了 JavaScript中的isXX系列
Aug 01 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
Aug 10 Javascript
jquery插件开发之选项卡制作详解
Aug 30 jQuery
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
实战node静态文件服务器的示例代码
Mar 08 Javascript
vue中的计算属性实例详解
Sep 19 Javascript
构建Vue大型应用的10个最佳实践(小结)
Nov 07 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
Jan 29 Javascript
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 miniBB中文乱码问题解决方法
2008/11/25 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
vuex存储token示例
2019/11/11 Javascript
js实现点击生成随机div
2020/01/16 Javascript
[00:09]DOTA2新版本PA至宝特效动作展示
2014/11/19 DOTA
Python类的基础入门知识
2008/11/24 Python
Python计算程序运行时间的方法
2014/12/13 Python
利用python将xml文件解析成html文件的实现方法
2017/12/22 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
Python使用configparser读取ini配置文件
2020/05/25 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
贷款承诺书范文
2014/05/19 职场文书
党员群众路线承诺书
2014/05/20 职场文书
大学生入党群众意见书
2015/06/02 职场文书
商场广播稿范文
2015/08/19 职场文书