满大街的复制粘贴腻歪了,就来看看最精简实用的吧!
我并非专业前端,如果有错误请大家指点~
本文使用yarn
安装vue
和依赖,npm
自行使用。
一、安装Vue
二、安装jquery
,bootstrap
, popper.js
,node-sass
和sass-loader
bootstrap
依赖jquery
和popper.js
。
由于集成到Vue
,所以不使用script
标签引入bootstrap.bundle.js
,因此需要安装popper.js
。由于我习惯使用SCSS引入bootstrap的css样式,所以需要安装
node-sass
和sass-loader
。如果是引入编译后的css,可以不安装。
sass-loader
对于其他博客说的,需要配置webpack
,但是我发现,根本不用配置什么,vue也会识别scss,build后也会解析。知道原因的可以跟我讲解一下。
BS源码浅读
源码bsvue/node_modules/bootstrap/js/src/index.js
中
import $ from 'jquery'
import Alert from './alert'
...
由此可见,boostrap自动引入了jquery
编译后的bsvue/node_modules/bootstrap/dist/js/bootstrap.js
中
(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));
}...
这段代码,整体意思我一个非专业人士就不懂了。但是可以根据源码看出,这是引入了jquery
和popper.js
。
既然jquery
会判断并且自动加载,那么接下来就简单了:
运行项目
npm run dev
bsvue/src/App.vue
引入bootstrap样式,这里不加scoped
属性,是为了全局使用。
<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
的组件进来看看样式是否有了
效果:
接下来加入需要js
的组件试试
首先bsvue/src/main.js
引入bootstrap
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>
效果:
完美运行~~
不足请指出
转载请留出处~谢谢~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。