效果图:
介绍:根据滚动位置自动更新引导导航或列表组组件,以指示视口中当前处于活动状态的链接。
作用:可以用于餐厅点菜的菜品展示页侧边栏、博客系统的侧边栏等,实现流畅的垂直滚动监听
官方网址:Scrollspy | Directives | BootstrapVue (bootstrap-vue.org)
在本文中,主要在官方文档的基础上,提供两种呈现数据的方式,
将数据放在data中,在div中进行加载
获取后端的传过来的数据,存入data,再进行加载
需要提前安装好node.js,我使用的是vue2, bootstrap-vue"版本:2.23.1,
使用npm或yarn 安装 bootstrap-vue
// 两种方式选一个
npm install vue bootstrap bootstrap-vue
yarn add vue bootstrap bootstrap-vue
在应用入口注册BootstrapVue,(通常是app.js 或 main.js)
import Vue from 'vue'
import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'// Import Bootstrap and BootstrapVue CSS files (order is important)
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'// Make BootstrapVue available throughout your project
Vue.use(BootstrapVue)
// Optionally install the BootstrapVue icon components plugin
Vue.use(IconsPlugin)
其他需要的东西,例如前后端交互需要的axios等等
这里以列表组为例,并且用 v-for 循环 生成每一个item,每个item都是一个card,card中存放餐品信息。总体代码如下:
{{ category.categoryName }} {{ category.categoryName }}
{{ dish.dish }}
{{ dish.description }}
¥{{ dish.price }}
静态页面中的代码主要分为两部分,左侧导航栏 & 右侧数据栏,核心就在于 两点:
第10行的代码中 v-b-scrollspy: listgroup-ex ,指向需要监听的div,即26行id="listgroup-ex" 的div
在16-17行的代码中,:href="`#p${category.categoryID}`",用来绑定对应的超链接,绑定到第30行,因为我用for循环加载每个菜品,所以href 就得是动态的,一定记得href前加冒号':', 这里的语法是ES6的模板字符串``,有需要可以看一下,模板字符串 - JavaScript | MDN (mozilla.org)
如下图所示: