從0開始Vue2集成Bootstrap4(1)

滿大街的複製粘貼膩歪了,就來看看最精簡實用的吧!

我並不是專業前端,若是有錯誤請你們指點~

本文使用yarn安裝vue和依賴,npm自行使用。javascript

1、安裝Vue

clipboard.png

2、安裝jquerybootstrap, popper.jsnode-sasssass-loader

clipboard.png

clipboard.png

bootstrap依賴 jquerypopper.js
因爲集成到 Vue,因此不使用 script標籤引入 bootstrap.bundle.js,所以須要安裝 popper.js

因爲我習慣使用SCSS引入bootstrap的css樣式,因此須要安裝node-sasssass-loader。若是是引入編譯後的css,能夠不安裝。css

sass-loader對於其餘博客說的,須要配置webpack,可是我發現,根本不用配置什麼,vue也會識別scss,build後也會解析。知道緣由的能夠跟我講解一下。前端

BS源碼淺讀

源碼bsvue/node_modules/bootstrap/js/src/index.jsvue

import $ from 'jquery'
import Alert from './alert'
...

因而可知,boostrap自動引入了jqueryjava

編譯後的bsvue/node_modules/bootstrap/dist/js/bootstrap.jsnode

(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
  typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
  (factory((global.bootstrap = {}),global.jQuery,global.Popper));
}...

這段代碼,總體意思我一個非專業人士就不懂了。可是能夠根據源碼看出,這是引入了jquerypopper.js
既然jquery會判斷而且自動加載,那麼接下來就簡單了:jquery

運行項目

npm run dev

bsvue/src/App.vue引入bootstrap樣式,這裏不加scoped屬性,是爲了全局使用。webpack

<style lang="scss">
@import '~bootstrap/scss/bootstrap.scss';
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

添加示例代碼

修改bsvue/src/components/HelloWorld.vue文件,先加入幾個不須要js的組件進來看看樣式是否有了web

clipboard.png

效果:

clipboard.png

接下來加入須要js的組件試試
首先bsvue/src/main.js引入bootstrapnpm

import 'bootstrap'

bsvue/src/components/HelloWorld.vue加入輪播圖組件

<div class="container">
      <div id="indicators" class="carousel slide w-100" data-ride="carousel" data-keyboard="false" data-pause="hover" data-interval="5000">
        <ol class="carousel-indicators">
          <li data-target="#indicators" data-slide-to="0" class="active"></li>
          <li data-target="#indicators" data-slide-to="1"></li>
          <li data-target="#indicators" data-slide-to="2"></li>
        </ol>
        <div class="carousel-inner">
          <div class="carousel-item active">
            <img class="d-block w-100" src="../assets/1.jpg">
          </div>
          <div class="carousel-item">
            <img class="d-block w-100" src="../assets/2.jpg">
          </div>
          <div class="carousel-item">
            <img class="d-block w-100" src="../assets/6.jpg">
          </div>
        </div>
        <a class="carousel-control-prev" href="#indicators" role="button" data-slide="prev">
          <span class="carousel-control-prev-icon" aria-hidden="true"></span>
        </a>
        <a class="carousel-control-next" href="#indicators" role="button" data-slide="next">
          <span class="carousel-control-next-icon" aria-hidden="true"></span>
        </a>
      </div>
    </div>
效果:

clipboard.png

完美運行~~

不足請指出 轉載請留出處~謝謝~
相關文章
相關標籤/搜索