如何解决vue与传统jquery插件冲突
发布时间 - 2026-01-11 00:16:14 点击率:次本篇文章主要介绍了如何解决vue与传统jquery插件冲突,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

比如基于jquery的select2插件,在vue下单独用有很多问题,其实对于这类插件,可以用vue的自定义指令和组件来包装,解决冲突的问题。引用官方vue1.0和2.0的两个例子,学习一下。
例子1.0 例子2.0
大功告成。说说基于vue1的,对于下拉单选,用vue官方的例子即可,对于多选,看下面自己写的,核心是用指令对象的el、vm等获取被select2改变后的select下拉列表的相应对象,关键点是用jquery包装原生元素后用.val()获取多选值。
<body>
<div id="el">
<p>Selected: {{selected}}</p>
<select v-select3="selected" multiple class="app1" >
<option value="0">default</option>
<option v-for="o in options" :value="o.id">{{ o.text }}</option>
</select>
<p>Selected: {{market}}</p>
<select v-select3="market" multiple class="app2" >
<option value="0">default</option>
<option v-for="o in markets" :value="o.id">{{ o.text }}</option>
</select>
</div>
<script>
Vue.directive('select3', {
twoWay: true,
priority: 1000,
params: ['options'],
bind: function () {
var self = this;
$(this.el)
.select2()
.on('change', function () {
self.set($(self.el).val());
console.log($(self.el).val());
if ( self.expression == 'selected') {
self.vm.market = [];
}
})
},
update: function (value) {
$(this.el).val(value).trigger('change')
},
unbind: function () {
$(this.el).off().select2('destroy')
}
})
var vm = new Vue({
el: '#el',
data: {
selected: 0,
market: '',
options: [
{ id: 1, text: 'hello' },
{ id: 2, text: 'what' }
],
markets: [
{ id: 1, text: '文山二手车' },
{ id: 2, text: '小哥二手车' }
]
}
});
setTimeout(function () {
vm.market = 0;
}, 0);
</script>
</body>
另外,在插入默认值的时候,注意做一个异步插入,因为vue更新页面是异步的,这里做了一个setTimeout( , 0)。
另外在单页里,考虑在SSpa的show的时候,设置一状态位vm.isInit,表示若是初始化默认选项,判断onchange里是否触发相关改变的时候不重新设置一些值的清空以及获取 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# vue
# jquery
# 冲突
# vue.js
# jquery冲突
# vue和jquery插件冲突
# vue中如何引入jQuery和Bootstrap
# 详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
# Webpack+Vue如何导入Jquery和Jquery的第三方插件
# 详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
# vue单页应用中如何使用jquery的方法示例
# jquery在vue脚手架中的使用方式示例
# jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
# Vue.js列表渲染绑定jQuery插件的正确姿势
# jquery加载单文件vue组件的方法
# Vue中正确使用jQuery的方法
# 小哥
# 小编
# 多选
# 文山
# 有很多
# 可以用
# 这类
# 给大家
# 大功告成
# 做一个
# 做个
# 自定义
# 看看吧
# 也给
# 如何解决
# 大家多多
# 清空
# 单选
# 默认值
# 与传统
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
PythonWeb开发入门教程_Flask快速构建Web应用
网站建设保证美观性,需要考虑的几点问题!
深圳网站制作的公司有哪些,dido官方网站?
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
如何用花生壳三步快速搭建专属网站?
如何在七牛云存储上搭建网站并设置自定义域名?
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
LinuxShell函数封装方法_脚本复用设计思路【教程】
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Java遍历集合的三种方式
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
如何用VPS主机快速搭建个人网站?
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
如何挑选优质建站一级代理提升网站排名?
微信小程序 require机制详解及实例代码
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Windows Hello人脸识别突然无法使用
如何快速搭建个人网站并优化SEO?
如何在阿里云高效完成企业建站全流程?
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
java获取注册ip实例
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
如何有效防御Web建站篡改攻击?
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
如何在云主机上快速搭建多站点网站?
Laravel如何集成Inertia.js与Vue/React?(安装配置)
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
Laravel观察者模式如何使用_Laravel Model Observer配置
怎么用AI帮你为初创公司进行市场定位分析?
Laravel如何创建自定义Artisan命令?(代码示例)
如何在万网主机上快速搭建网站?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何用已有域名快速搭建网站?
如何在Windows环境下新建FTP站点并设置权限?
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
如何快速搭建二级域名独立网站?
原生JS实现图片轮播切换效果
C++用Dijkstra(迪杰斯特拉)算法求最短路径
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
如何用AI帮你把自己的生活经历写成一个有趣的故事?
如何正确选择百度移动适配建站域名?
如何用虚拟主机快速搭建网站?详细步骤解析
微信小程序 wx.uploadFile无法上传解决办法

