赞
踩
问题:所有的路由配置都堆在main.js中合适吗?
目标:将路由模块抽离出来。好处:拆分模块,利于维护
之前所添加的路由配置都是写在main.js中的

方法:src下面新建一个文件router,里面建一个index.js,在里面导入router
index.js //一直换路径很麻烦,可以用@/view.Find(@就是src,就直接从src下面找,是绝对路径) import Find from '../views/Find' import My from '../views/My' import Friend from '../views/Friend' import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) //VueRouter插件初始化 //创建了一个路由对象 const router = new VueRouter({ //routes 路由规则们 routes:[ {path:'/find',component:Find}, {path:'/my',component:My}, {path:'/friend',component:Friend} ] }) export default router main.js import Vue from 'vue' import App from './App.vue' import router from './router/index' Vue.config.productionTip = false new Vue({ render: h => h(App), router:router }).$mount('#app')
需求:实现导航高亮效果
vue-router 提供了一个全局组件router-link(取代a标签)
功能:
①能跳转,配置to属性指定路径(必须)。标签还是a标签,to无需#
②能高亮,默认就会提供高亮类名,可以直接设置高亮样式(就是在控制台中,直接找到对应的类名,两个类名,选一个就可以了)


App.vue <template> <div> <div class="footer_wrap"> <router-link to="/find">发现音乐</router-link> <router-link to="/my">我的音乐</router-link> <router-link to="/friend">朋友</router-link> </div> <div class="top"> <!-- 路由出口 → 匹配的组件所展示的位置 --> <router-view></router-view> </div> </div> </template> <script> export default {}; </script> <style> .footer_wrap a.router-link-active{ background-color: pink; } </style>

说明:router-link自动给当前导航添加了两个高亮类名

①router-link=active 模糊匹配(用的多)
to="/my" 可以匹配 /my /my/a /my/b

②router-link-exact-active 精确匹配
to="/my" 仅可以匹配 /my
Q:router-link的两个高亮类名太长了,希望能定制怎么办
只需要在router配置项中配两个配置项就可以了


目标:在跳转路由时,进行传值
①语法格式如下:
to = "/path?参数名 = 值"
②对应页面组件接收传递过来的值
$route.query.参数名
https://www.wpsshop.cn/article/detail/45525
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。