安裝 Bootstrap 4


新版本 Bootstrap 會相依 jQuery 及 tether 套件,因此先安裝該套件後進行安裝 Bootstrap 套件,安裝一樣是透過 npm 來進行,請參考以下語法。

$ npm install jquery --save
$ npm install [email protected] --save
$ npm install [email protected]

安裝 sass-loader 來 import scss 資源


筆者希望使用 Bootstrap 的 scss 檔案,因此需要安裝 sass-loader (相依 node-sass ) 得以在 import scss 模組時可以順利被 webpack 解析。

$ npm install sass-loader node-sass --save-dev

設定 webpack 自動載入套件


需要全域使用 jQuery 及 tether 套件,因此在 webpack.base.conf.js 中設定自動載入套件

// ...
var webpack = require('webpack')

module.exports = {
    // ...
    plugins: [
        new webpack.ProvidePlugin({
            // Automatically loads modules
            $: 'jquery',
            jQuery: 'jquery',
            'window.jQuery': 'jquery', 
            Tether: 'tether'
        })
    ]
}

再執行 npm run dev (才會載入設定, 讓設定生效)

Import Bootstrap 模組


接著在 webpack 進入點 main.js 引用 Bootstrap 的 scss 及 js 模組

// bootstrap
import 'bootstrap/scss/bootstrap.scss'
import 'bootstrap'

// app style
import '.assets/css/app.scss'

新增User Setting選項


 "editor.formatOnSave": true, // 编辑器保存自动格式化
 "prettier.semi": false, // 语句结束不添加分号
 "prettier.singleQuote": true // 字符串使用单引号

驗證Bootstrap 4是否 ok


新增一個Compaonent (Carousel.vue)

<template>
    <div id="myCarouselX" class="container">
      <div :id="ID" class="carousel slide" data-ride="carousel">
        <!-- Wrapper for slides -->
        <div class="carousel-inner">
          <div class="carousel-item active">
            <img class="d-block w-100" src="../assets/la.jpg" alt="Los Angeles">
          </div>

          <div class="carousel-item">
            <img class="d-block w-100" src="../assets/chicago.jpg" alt="Chicago">
          </div>

          <div class="carousel-item">
            <img class="d-block w-100" src="../assets/ny.jpg" alt="New York">
          </div>
        </div>
      </div>
      <!-- Left and right controls -->
      <a class="carousel-control-prev" :href="hrefID" role="button" data-slide="prev">
        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
      </a>
      <a class="carousel-control-next" :href="hrefID" role="button" data-slide="next">
        <span class="carousel-control-next-icon" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
      </a>
    </div>
</template>
<script>
export default {
  name: 'myCarouselX',
  props: ['hrefID', 'ID'] //讓使用這個Component傳入ID
}
</script>

在App.vue中使用Carousel (Component)

<template>
  <div id="app">
    <img src="./assets/logo.png">
    <router-view/>
    <Carouselxxxx hrefID="#XX" ID="XX" />
    <Carouselxxxx hrefID="#TT" ID="TT"/>
  </div>
</template>

<script>
import Carouselxxxx from './components/Carousel'

export default {
  name: 'App',
  components: {
    Carouselxxxx
  }
}
</script>

Copy la.jpg, logo.png, ny.jpg into assets (複製照片)

確認結果

results matching ""

    No results matching ""