【发布时间】:2018-06-17 14:48:51
【问题描述】:
我正在尝试了解如何将标准 Bootstrap 4 css 与 vue.js 应用程序一起使用。 我使用 vue-cli webpack 设置了一个简单的测试项目,并在标题组件中复制了一个标准的 Bootstrap 导航栏。 它显示但没有链接可见....
添加到 package.json
"bootstrap": "4.0.0-beta.3",
添加到 main.js
import 'bootstrap/dist/css/bootstrap.css'
App.vue
<template>
<div id="app">
<myheader></myheader>
<div class="container">
<router-view></router-view>
</div>
</div>
</template>
<script>
import myheader from '@/components/Header'
export default {
name: 'app',
components: { myheader }
}
</script>
<style>
</style>
Header.vue
<template>
<header id="myheader">
<div class="container">
<nav class="navbar navbar-light bg-faded rounded ">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#containerNavbar" aria-controls="containerNavbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">Navbar</a>
<div class="collapse navbar-collapse" id="containerNavbar">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>z
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="http://example.com" id="dropdown04" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div class="dropdown-menu" aria-labelledby="dropdown04">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
</ul>
<form class="form-inline my-2 my-md-0">
<input class="form-control mr-sm-2" type="text" placeholder="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
</div>
</header>
</template>
<script>
import router from '@/router/index'
export default {
name: 'myheader',
router
}
</script>
<style>
</style>
**UPDATE**
我用 npm 添加了 jQuery 和 popper.js 并更新了我的 webpack.dev.config
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery',
jQuery: 'jquery'
})
]
我还更新了我的 .eslintrc
globals: {
"$": true,
"jQuery": true
},
现在 Bootstrap 导航栏折叠运行正常,但仍然没有水平链接...
【问题讨论】:
-
Bootstrap 4,afaik,需要 jQuery。你在你的应用程序中加载
jquery.js和boostrap.js吗?通常,将 jQuery 与 vue 等视图模型框架一起使用被认为是一个坏主意,这就是为什么有些人为引导程序制作了特定的 Vue 实现,例如v4-alpha.getbootstrap.com/getting-started/introduction。你确定你只需要一个标准的引导程序吗? -
天哪! ... bootstrap 3 没有必要?
-
你可以在没有 javascript 的情况下让大多数 boostrap 工作,但要获得这一切,你需要
bootstrap.js, which relies uponjquery`。据我所知,bootstrap vs4 也需要 jquery(来自这里:v4-alpha.getbootstrap.com/getting-started/introduction)。 -
非常感谢...这只是一个测试,所以我会在其中获得 jquey...但我想最好继续使用 Bootstrap-vue 以更好地与 vue.js 集成(当然,如果 Bootstrap 是客户的要求……)
-
CSS 永远不会依赖于 javascript 库。就个人而言,我将 Bootstrap 4 SCSS 文件导入全局
app.scss,而不是通过 Vue 本身。我总是觉得这更容易。
标签: vue.js bootstrap-4