vue-cli选项卡案例
本节通过选项卡案例,巩固 .vue
文件的创建、路由匹配规则创建的相关知识。
在 components 文件夹下新建 tab.vue,代码如下。
<template>
<div>
<div class="menu">
// 1.标题排他(单击的菜单高亮显示)
// 2.绑定菜单单击事件,传递参数
<ul>
<li :class="{active:isactive==0}" @click="mytab(0)">娱乐新闻</li>
<li :class="{active:isactive==1}" @click="mytab(1)">体育新闻</li>
<li :class="{active:isactive==2}" @click="mytab(2)">热搜</li>
</ul>
</div>
<div class="main">
<ul>
// 4.使用v-for遍历数组,数组下标就是用户传递的isactive的值
<li v-for="(item,i) in newlist[isactive]" :key="i">{{item}}</li>
</ul>
</div>
</div>
</template>
<script>
export default {
data() {
return {
isactive: 0,
newlist: [
["娱乐新闻1", "娱乐新闻2", "娱乐新闻3"],
["体育新闻1", "体育新闻2", "体育新闻3"],
["热搜新闻1", "热搜新闻2", "热搜新闻3"]
]
};
},
methods: {
//3.接收参数,重新赋值给isactive
mytab(i) {
this.isactive = i;
}
}
};
</script>
<style scoped>
.active{
color: red;
}
</style>
代码解析如下。
选项卡案例分为 4 个步骤。
-
标题排他功能,单击的菜单需要高亮显示,使用样式绑定实现。
-
绑定菜单单击事件,进行参数传递。
-
在方法中根据接收的参数,给 isactive 重新赋值。
-
使用 v-for 遍历数据,最终实现选项卡功能。
最后,需要创建匹配规则,把 tab.vue 在浏览器中显示出来,进入 router 下的 index.js 文件,代码如下。
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
// 1. 引入 tab 组件
import tab from '@/components/tab'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
},
// 2. 创建路由匹配规则
{
path: '/tab',
name: 'tab',
component: tab
}
]
})
代码解析如下。
-
引入 tab 组件。
-
创建匹配规则,当路径为 /tab 时,页面显示 tab.vue 文件。