如何解決vue與傳統(tǒng)jquery插件沖突
本篇文章主要介紹了如何解決vue與傳統(tǒng)jquery插件沖突,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
比如基于jquery的select2插件,在vue下單獨(dú)用有很多問題,其實(shí)對于這類插件,可以用vue的自定義指令和組件來包裝,解決沖突的問題。引用官方vue1.0和2.0的兩個例子,學(xué)習(xí)一下。
大功告成。說說基于vue1的,對于下拉單選,用vue官方的例子即可,對于多選,看下面自己寫的,核心是用指令對象的el、vm等獲取被select2改變后的select下拉列表的相應(yīng)對象,關(guān)鍵點(diǎn)是用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>
另外,在插入默認(rèn)值的時候,注意做一個異步插入,因?yàn)関ue更新頁面是異步的,這里做了一個setTimeout( , 0)。
另外在單頁里,考慮在SSpa的show的時候,設(shè)置一狀態(tài)位vm.isInit,表示若是初始化默認(rèn)選項(xiàng),判斷onchange里是否觸發(fā)相關(guān)改變的時候不重新設(shè)置一些值的清空以及獲取 。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue中如何引入jQuery和Bootstrap
- 詳解使用Vue.Js結(jié)合Jquery Ajax加載數(shù)據(jù)的兩種方式
- Webpack+Vue如何導(dǎo)入Jquery和Jquery的第三方插件
- 詳解如何在 vue 項(xiàng)目里正確地引用 jquery 和 jquery-ui的插件
- vue單頁應(yīng)用中如何使用jquery的方法示例
- jquery在vue腳手架中的使用方式示例
- jQuery+vue.js實(shí)現(xiàn)的九宮格拼圖游戲完整實(shí)例【附源碼下載】
- Vue.js列表渲染綁定jQuery插件的正確姿勢
- jquery加載單文件vue組件的方法
- Vue中正確使用jQuery的方法
相關(guān)文章
Vue中div contenteditable 的光標(biāo)定位方法
今天小編就為大家分享一篇Vue中div contenteditable 的光標(biāo)定位方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
Vue使用v-for數(shù)據(jù)渲染順序混亂的原因及解決方案
在 Vue.js 中,使用 v-for 指令進(jìn)行數(shù)據(jù)渲染時,有時會遇到渲染順序混亂的問題,這種問題主要與 Vue 的響應(yīng)式系統(tǒng)、DOM 更新機(jī)制以及數(shù)組的變更方法有關(guān),以下是對這一現(xiàn)象的深入分析及解決方案,需要的朋友可以參考下2025-01-01
element多個表單校驗(yàn)的實(shí)現(xiàn)
在項(xiàng)目中,經(jīng)常會遇到表單檢驗(yàn),在這里我分享在實(shí)際項(xiàng)目中遇到多個表單同時進(jìn)行校驗(yàn)以及我的解決方法,感興趣的可以了解一下2021-05-05
詳解如何優(yōu)雅的進(jìn)行Vue的狀態(tài)管理
隨著項(xiàng)目的發(fā)展和復(fù)雜性的增加,對 Vuex 進(jìn)行更深入的了解和使用就變得非常重要,本篇文章將帶您探索 Vuex 的進(jìn)階使用,包括模塊化、命名空間、getter 的高級用法等,需要的朋友可以參考下2023-09-09
vue實(shí)現(xiàn)關(guān)鍵字高亮效果的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何使用vue實(shí)現(xiàn)關(guān)鍵字高亮效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
Vue3實(shí)現(xiàn)地圖選點(diǎn)組件的示例代碼
這篇文章主要為大家詳細(xì)介紹了Vue3實(shí)現(xiàn)地圖選點(diǎn)組件的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
Vue-Access-Control 前端用戶權(quán)限控制解決方案
Vue-Access-Control是一套基于Vue/Vue-Router/axios 實(shí)現(xiàn)的前端用戶權(quán)限控制解決方案。這篇文章主要介紹了Vue-Access-Control:前端用戶權(quán)限控制解決方案,需要的朋友可以參考下2017-12-12

