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

发布时间 - 2026-01-11 00:41:05    点击率:

因为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。虽然可能导致性能的下降,但是不会导致错误。

vue官网

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


# bootstrap  # select  # Vue  # vue-cropper插件实现图片截取上传组件封装  # vue以组件或者插件的形式实现throttle或者debounce  # Vue使用zTree插件封装树组件操作示例  # vue中的自定义分页插件组件的示例  # 基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能  # vue自定义全局组件(自定义插件)的用法  # vue中插件和组件的区别点及用法总结  # 多个  # 半天  # 还不错  # 请选择  # 不提  # 中会  # 官网  # 大家多多  # 复用  # 加载  # 使用了  # change  # childIdx  # gt  # load  # multiple  # method  # component  # vm 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Mybatis 中的insertOrUpdate操作  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  如何在阿里云通过域名搭建网站?  如何快速搭建高效WAP手机网站?  创业网站制作流程,创业网站可靠吗?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  Laravel怎么使用Intervention Image库处理图片上传和缩放  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  如何用美橙互联一键搭建多站合一网站?  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  如何用5美元大硬盘VPS安全高效搭建个人网站?  深圳网站制作平台,深圳市做网站好的公司有哪些?  zabbix利用python脚本发送报警邮件的方法  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何获取上海专业网站定制建站电话?  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Laravel如何实现文件上传和存储?(本地与S3配置)  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  C++时间戳转换成日期时间的步骤和示例代码  Laravel如何实现用户注册和登录?(Auth脚手架指南)  微信小程序制作网站有哪些,微信小程序需要做网站吗?  高端云建站费用究竟需要多少预算?  微信小程序 配置文件详细介绍  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  如何快速上传建站程序避免常见错误?  微信推文制作网站有哪些,怎么做微信推文,急?  香港服务器部署网站为何提示未备案?  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  手机网站制作与建设方案,手机网站如何建设?  Laravel怎么使用artisan命令缓存配置和视图  Laravel如何发送系统通知?(Notification渠道示例)  Laravel如何保护应用免受CSRF攻击?(原理和示例)  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何用景安虚拟主机手机版绑定域名建站?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】