Bootstrap是网上最流行的前端开发框架. 除了用它,我不知道还有其他更快的方法去构建一个响应式的网站。

但是自从我向网页添加动态功能的工具变成vue.js后。适应bootstrap变得困难起来。因为这带来了一些技术包袱。没错。我说的就是jquery。
这并不是在抨击jquery,我只是意识到,当你已经在项目里使用一些像Vue的框架后,再引入jQuery就会出现一些显著的缺点:
增加开销。jQuery将会使你的网页增加30KB。
在使用诸如webpack一类的打包工具时,jquery也会很难与之进行配置。
当你使用Vue负责DOM操作时,你不会愿意Jquery再来将DOM搞的一团糟。
彻底移除jQuery和Bootstrap的javascript插件
这里有一个很棒的项目 vue-strap ,它使用Vue.js 内置的插件来替换Bootstrap中的Javascript插件。因此你可以使用你项目中原有的Bootstrap插件,比如 modals, carousel, tabs, etc. 他们都是基于 Vue 提供支持.
但是如果你只是用一小部分的Bootstrap插件的话, 我觉得自己定制Vue.js的插件也很容易,那样的话你也不需要将整个vue-strap都引用进来(译者注:我就是只用了Vue.js和几个其他需要的plugin :)
下面让我展示一下怎么使用vue,从零开始设置一些常用的Bootstrap 插件
自己动手做由vue.js驱动的Bootstrap小部件
选项卡
我们将从选项卡开始。每一个选项卡都附带着他的面板. 选项卡的显示/隐藏是通过添加/移除选项卡与面板的class属性中的active来实现的,而这就是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>
我们用一个变量tab来跟踪当前被选中的选项卡,并用这个变量来添加/移除选项卡与其对应面板的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>
我们还需要在所有的选项卡上监听点击事件,用来更新我们的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
}
});
这里还有一些我们可以进行的改进与优化,但为了使本文简介的缘故就不展开了:
将JavaScript代表包装成一个Vue组件,以便我们能在整个网站重用这个选项卡代码。
作为一个真正紧凑的模板。将选项卡和对应的面板内容放入一个数组属性中,然后用 v-for来打印出选项卡与面板的列表来。
模态框
模态对话框是我最喜欢的Bootstrap 插件之一。与选项卡类似,我们通过添加/移除一个in的类来控制模态框的显示/隐藏。而这些通过一个打开和关闭按钮来触发,
<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:style="modalStyle">
<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>
对于一个Bootstrap 的模态框,我们需要在对话框上有一个动态的内联样式。 我们通过 v-bind:style 指令来实现,这个指令通过从一个计算属性中接收一个“对象样式”进行的。每次计算属性所依赖的变量变化时,他自己都会重新计算一遍:
new Vue({
el: '#app',
data: {
show: false
},
methods: {
toggle() { this.show = !this.show; }
},
computed: {
modalStyle() {
return this.show ?
{ 'padding-left': '0px;', display: 'block' } : {};
}
}
});
你也可以通过使用Vue的过渡动画在模态框进入和离开DOM时渐变,来增强你的模态框。
让jQuery退休吧,考虑下在下一个Bootstrap 项目中使用Vue.js
不是说你可以在Bootstrap中用vue.js代替jquery,而是说你的确应该这么做。因为不管你是使用vue-strap或自己封装插件,你都可以感到Vue的如下诱人的优势:
与jQuery对比,vue的DOM操作系统允许较高的UI性能和响应性。
Vue是被设计用来建立小型,孤立的UI块的。所以vue编写的小部件将比jquery的更容易扩展,可维护性更好。
Bootstrap的小部件有着臭名昭著的混乱模板, 所以vue可以使用他灵活的模板选项来缓解这个问题,如jsx,单页应用组件,渲染功能,类与样式绑定,等等。
请记住,Vue不支持IE8,但是你可能会考虑在下一个bootstrap项目中使用他。
以上所述是本文的全部内容,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对网站的支持!
# vuejs中使用bootstrap
# jquery移除、绑定、触发元素事件使用示例详解
# jQuery移除或禁用html元素点击事件常用方法小结
# JQuery实现样式设置、追加、移除与切换的方法
# jQuery一键移除使前端项目脱离对它的依赖
# 选项卡
# 模态
# 移除
# 你也
# 当你
# 说你
# 来实现
# 对话框
# 都是
# 几个
# 就会
# 如果你
# 让我
# 是在
# 我不
# 带着
# 中原
# 也会
# 你是
# 我说
相关文章:
如何彻底卸载建站之星软件?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
建站之星后台密码遗忘或太弱?如何重置与强化?
微信h5制作网站有哪些,免费微信H5页面制作工具?
香港服务器选型指南:免备案配置与高效建站方案解析
建站之星如何一键生成手机站?
名字制作网站免费,所有小说网站的名字?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
建站org新手必看:2024最新搭建流程与模板选择技巧
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
三星网站视频制作教程下载,三星w23网页如何全屏?
建站之星客服服务时间及联系方式如何?
如何基于PHP生成高效IDC网络公司建站源码?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何设计高效校园网站?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
如何解决VPS建站LNMP环境配置常见问题?
如何通过智能用户系统一键生成高效建站方案?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
如何制作一个表白网站视频,关于勇敢表白的小标题?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
如何用虚拟主机快速搭建网站?详细步骤解析
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
建站之星ASP如何实现CMS高效搭建与安全管理?
建站之星在线版空间:自助建站+智能模板一键生成方案
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何访问已购建站主机并解决登录问题?
如何在阿里云ECS服务器部署织梦CMS网站?
如何通过商城免费建站系统源码自定义网站主题?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何在腾讯云免费申请建站?
建站之星官网登录失败?如何快速解决?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
宝塔面板如何快速创建新站点?
如何高效利用亚马逊云主机搭建企业网站?
,石家庄四十八中学官网?
如何在万网ECS上快速搭建专属网站?
香港服务器租用每月最低只需15元?
如何在IIS服务器上快速部署高效网站?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
海南网站制作公司有哪些,海口网是哪家的?
Python文件管理规范_工程实践说明【指导】
广州营销型建站服务商推荐:技术优势与SEO优化解析
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
*请认真填写需求信息,我们会在24小时内与您取得联系。