溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么徹底移除jQuery和Bootstrap的javascript插件

發(fā)布時(shí)間:2021-02-22 10:09:47 來源:億速云 閱讀:238 作者:小新 欄目:web開發(fā)

這篇文章主要介紹了怎么徹底移除jQuery和Bootstrap的javascript插件,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Bootstrap是網(wǎng)上最流行的前端開發(fā)框架. 除了用它,我不知道還有其他更快的方法去構(gòu)建一個(gè)響應(yīng)式的網(wǎng)站。

但是自從我向網(wǎng)頁(yè)添加動(dòng)態(tài)功能的工具變成vue.js后。適應(yīng)bootstrap變得困難起來。因?yàn)檫@帶來了一些技術(shù)包袱。沒錯(cuò)。我說的就是jquery。

這并不是在抨擊jquery,我只是意識(shí)到,當(dāng)你已經(jīng)在項(xiàng)目里使用一些像Vue的框架后,再引入jQuery就會(huì)出現(xiàn)一些顯著的缺點(diǎn):

增加開銷。jQuery將會(huì)使你的網(wǎng)頁(yè)增加30KB。

在使用諸如webpack一類的打包工具時(shí),jquery也會(huì)很難與之進(jìn)行配置。

當(dāng)你使用Vue負(fù)責(zé)DOM操作時(shí),你不會(huì)愿意Jquery再來將DOM搞的一團(tuán)糟。

徹底移除jQuery和Bootstrap的javascript插件

這里有一個(gè)很棒的項(xiàng)目 vue-strap ,它使用Vue.js 內(nèi)置的插件來替換Bootstrap中的Javascript插件。因此你可以使用你項(xiàng)目中原有的Bootstrap插件,比如 modals, carousel, tabs, etc. 他們都是基于 Vue 提供支持.

但是如果你只是用一小部分的Bootstrap插件的話, 我覺得自己定制Vue.js的插件也很容易,那樣的話你也不需要將整個(gè)vue-strap都引用進(jìn)來(譯者注:我就是只用了Vue.js和幾個(gè)其他需要的plugin  :)

下面讓我展示一下怎么使用vue,從零開始設(shè)置一些常用的Bootstrap 插件

自己動(dòng)手做由vue.js驅(qū)動(dòng)的Bootstrap小部件

選項(xiàng)卡

我們將從選項(xiàng)卡開始。每一個(gè)選項(xiàng)卡都附帶著他的面板. 選項(xiàng)卡的顯示/隱藏是通過添加/移除選項(xiàng)卡與面板的class屬性中的active來實(shí)現(xiàn)的,而這就是Vue將要處理的工作。

<div id="tabs">
 <ul class="nav nav-tabs">
  <li><a>Tab 1</a></li>
  <li><a>Tab 2</a></li>
 </ul>
 <div class="tab-content">
  <div class="tab-pane">Pane 1</div>
  <div class="tab-pane">Pane 2</div>
 </div>
</div>

我們用一個(gè)變量tab來跟蹤當(dāng)前被選中的選項(xiàng)卡,并用這個(gè)變量來添加/移除選項(xiàng)卡與其對(duì)應(yīng)面板的Class屬性中的active:

<div id="tabs">
 <ul class="nav nav-tabs">
  <li v-bind:class="{ active: tab === 1}"><a>Tab 1</a></li>
  <li v-bind:class="{ active: tab === 2}"><a>Tab 2</a></li>
 </ul>
 <div class="tab-content">
  <div class="tab-pane" v-bind:class="{ active: tab === 1}">
   Pane 1</div>
  <div class="tab-pane" v-bind:class="{ active: tab === 2}">
   Pane 2</div>
 </div>
</div>

我們還需要在所有的選項(xiàng)卡上監(jiān)聽點(diǎn)擊事件,用來更新我們的tab變量

<div id="tabs">
 <ul class="nav nav-tabs">
  <li v-bind:class="{ active: tab === 1}" v-on:click="tab = 1">
   <a>Tab 1</a>
  </li>
  <li v-bind:class="{ active: tab === 2}" v-on:click="tab = 2">
   <a>Tab 2</a>
  </li>
 </ul>
 <div class="tab-content">
  <div class="tab-pane" v-bind:class="{ active: tab === 1}">
   Pane 1</div>
  <div class="tab-pane" v-bind:class="{ active: tab === 2}">
   Pane 2</div>
 </div>
</div>

最后,js代碼:

new Vue({
 el: '#tabs',
 data: { 
  // Tab 1 is selected by default
  tab: 1 
 }
});

這里還有一些我們可以進(jìn)行的改進(jìn)與優(yōu)化,但為了使本文簡(jiǎn)介的緣故就不展開了:

將JavaScript代表包裝成一個(gè)Vue組件,以便我們能在整個(gè)網(wǎng)站重用這個(gè)選項(xiàng)卡代碼。

作為一個(gè)真正緊湊的模板。將選項(xiàng)卡和對(duì)應(yīng)的面板內(nèi)容放入一個(gè)數(shù)組屬性中,然后用 v-for來打印出選項(xiàng)卡與面板的列表來。

模態(tài)框

 模態(tài)對(duì)話框是我最喜歡的Bootstrap 插件之一。與選項(xiàng)卡類似,我們通過添加/移除一個(gè)in的類來控制模態(tài)框的顯示/隱藏。而這些通過一個(gè)打開和關(guān)閉按鈕來觸發(fā),

<div id="app" v-bind:class=" { 'modal-open': show }">
 <button class="btn btn-primary" v-on:click="toggle">
  Open
 </button>
 <div class="modal" tabindex="-1" v-bind:class="{ in: show }"
  v-bind:>
  <div class="modal-dialog">
   <div class="modal-content">
    <div class="modal-body">
     <p>Vue-powered modal!</p>
    </div>
   <div class="modal-footer">
    <button class="btn" v-on:click="toggle">Close</button>
   </div>
  </div>
 </div>
 </div>
</div>

對(duì)于一個(gè)Bootstrap 的模態(tài)框,我們需要在對(duì)話框上有一個(gè)動(dòng)態(tài)的內(nèi)聯(lián)樣式。 我們通過 v-bind:style 指令來實(shí)現(xiàn),這個(gè)指令通過從一個(gè)計(jì)算屬性中接收一個(gè)“對(duì)象樣式”進(jìn)行的。每次計(jì)算屬性所依賴的變量變化時(shí),他自己都會(huì)重新計(jì)算一遍:

new Vue({
 el: '#app',
 data: { 
  show: false 
 },
 methods: {
  toggle() { this.show = !this.show; }
 },
 computed: {
  modalStyle() {
   return this.show ? 
    { 'padding-left': '0px;', display: 'block' } : {};
  }
 }
});

你也可以通過使用Vue的過渡動(dòng)畫在模態(tài)框進(jìn)入和離開DOM時(shí)漸變,來增強(qiáng)你的模態(tài)框。

讓jQuery退休吧,考慮下在下一個(gè)Bootstrap 項(xiàng)目中使用Vue.js

不是說你可以在Bootstrap中用vue.js代替jquery,而是說你的確應(yīng)該這么做。因?yàn)椴还苣闶鞘褂胿ue-strap或自己封裝插件,你都可以感到Vue的如下誘人的優(yōu)勢(shì):

與jQuery對(duì)比,vue的DOM操作系統(tǒng)允許較高的UI性能和響應(yīng)性。

Vue是被設(shè)計(jì)用來建立小型,孤立的UI塊的。所以vue編寫的小部件將比jquery的更容易擴(kuò)展,可維護(hù)性更好。

Bootstrap的小部件有著臭名昭著的混亂模板, 所以vue可以使用他靈活的模板選項(xiàng)來緩解這個(gè)問題,如jsx,單頁(yè)應(yīng)用組件,渲染功能,類與樣式綁定,等等。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“怎么徹底移除jQuery和Bootstrap的javascript插件”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI