如何解決vue與傳統(tǒng)jquery插件沖突
本篇文章主要介紹了如何解決vue與傳統(tǒng)jquery插件沖突,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
比如基于jquery的select2插件,在vue下單獨(dú)用有很多問(wèn)題,其實(shí)對(duì)于這類插件,可以用vue的自定義指令和組件來(lái)包裝,解決沖突的問(wèn)題。引用官方vue1.0和2.0的兩個(gè)例子,學(xué)習(xí)一下。
大功告成。說(shuō)說(shuō)基于vue1的,對(duì)于下拉單選,用vue官方的例子即可,對(duì)于多選,看下面自己寫(xiě)的,核心是用指令對(duì)象的el、vm等獲取被select2改變后的select下拉列表的相應(yīng)對(duì)象,關(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)值的時(shí)候,注意做一個(gè)異步插入,因?yàn)関ue更新頁(yè)面是異步的,這里做了一個(gè)setTimeout( , 0)。
另外在單頁(yè)里,考慮在SSpa的show的時(shí)候,設(shè)置一狀態(tài)位vm.isInit,表示若是初始化默認(rèn)選項(xiàng),判斷onchange里是否觸發(fā)相關(guān)改變的時(shí)候不重新設(shè)置一些值的清空以及獲取 。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(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è)應(yīng)用中如何使用jquery的方法示例
- jquery在vue腳手架中的使用方式示例
- jQuery+vue.js實(shí)現(xiàn)的九宮格拼圖游戲完整實(shí)例【附源碼下載】
- Vue.js列表渲染綁定jQuery插件的正確姿勢(shì)
- jquery加載單文件vue組件的方法
- Vue中正確使用jQuery的方法
相關(guān)文章
Vue.extend實(shí)現(xiàn)掛載到實(shí)例上的方法
這篇文章主要介紹了Vue.extend實(shí)現(xiàn)掛載到實(shí)例上的方法,結(jié)合實(shí)例形式分析了Vue.extend實(shí)現(xiàn)掛載到實(shí)例上的具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-05-05vue2.x中monaco-editor的使用說(shuō)明
這篇文章主要介紹了vue2.x中monaco-editor的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Vue組件間通信方法總結(jié)(父子組件、兄弟組件及祖先后代組件間)
這篇文章主要給大家介紹了關(guān)于Vue組件間通信的相關(guān)資料,其中包括父子組件、兄弟組件及祖先后代組件間的通信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04關(guān)于vue中hash和history的區(qū)別與使用圖文詳解
vue-router中有hash模式和history模式,下面這篇文章主要給大家介紹了關(guān)于vue中hash和history的區(qū)別與使用的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03vue+axios 前端實(shí)現(xiàn)的常用攔截的代碼示例
這篇文章主要介紹了vue+axios 前端實(shí)現(xiàn)的常用攔截的代碼示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08一款移動(dòng)優(yōu)先的Solid.js路由solid router stack使用詳解
這篇文章主要為大家介紹了一款移動(dòng)優(yōu)先的Solid.js路由solid router stack使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08