站长之家官网,手机之家官网首页,平面设计提升培训中心,利用模板做网站VueRouter 修改地址栏路径时#xff0c;切换显示匹配的组件
使用52#xff1a;
1下载版本3.6.5#xff08;Vue3对应版本4.X#xff09;
npm add vue-router3.6.5
2引入
import VueRouter from vue-router
3安装注册
Vue.use(VueRouter)
4创建路由对象
const route…VueRouter 修改地址栏路径时切换显示匹配的组件
使用52
1下载版本3.6.5Vue3对应版本4.X
npm add vue-router3.6.5
2引入
import VueRouter from vue-router
3安装注册
Vue.use(VueRouter)
4创建路由对象
const routernew VueRouter()
5将路由对象注入到Vue实例中建立关联
new Vue({render:hh(App),router
}).$mount(#app)
2个核心步骤
1创建需要的组件src下views目录下配置路由规则 main.js
new VueRouter({routes[{path:/xxx,component:xx},{}]})
注Find.vue报错因为find是一个单词加name export default{name:FindMusic}
2配置导航配置路由出口路径匹配的组件显示的位置
router-view/router-view
组件存放目录问题
页面组件 src/views文件夹
复用组件 src/components文件夹
路由的封装抽离
将main.js中路由模块抽离出来。src/router/index.js 直接指代src便于写绝对路径
引入三个子网页、Vue、VueRouter
App.vue router-link标签取代a标签to取代href默认提供高亮类名 本质还是a标签
声明式导航router-link-两个类名
router-link-active模糊匹配用得多to/my可匹配/my、/my/a、/my/b
router-link-exact-active精确匹配 to/my仅可匹配/my
VueRouter里面linkActiveClassxxx,linkEXactiveActiveClassxxx 直接敲link
声明式导航router-link-跳转传参
查询参数传参 to/path?参数名值
对应页面组件接收传递过来的值{{$route.query.参数名 }}
动态路由传参
1配置动态路由path/searsh/:words?(?为可选符按需加)
2配置导航链接to/path/参数值
3对应页面组件接收传递过来的值{{$route.params.参数名 }}
重定向 匹配某一路径后强制跳转
new VueRouter({routes[{path:/,redirect:/xxx},{}]})
404 当路径找不到匹配时,给个提升页面 配在路由最后
new VueRouter({routes[.......{path:*,component:NotFind},{}]})
模式设置
hash路由默认.../#/...(#很奇怪) mode:hash
history路由常用 new VueRouter({routesmode:history})
编程式导航-基本跳转
点击按钮跳转页面编程式导航用js代码来进行跳转
1path路径跳转 绑定的事件函数内this.$router.push(path)
2name命名路由跳转(路径较长时用此写法方便) new VueRouter({routes[{name:xxx,path:/,redirect:/xxx},{}]})
绑定的事件函数内this.$router.push({name:xxx}) 编程式导航-路由传参 跳转需要传参
1path路径跳转传参
this.$router.push(/path?key${{this.inpValue}}......) 双向绑定的数据传入
this.$router.push({path:/path,query:{keythis.inpValue}
})
动态路由传参
this.$router.push(/path/参数名)
this.$router.push({path:/path/参数名
})
完整写法更适合传参
this.$route.push({name:xxx,query:{参数名参数值},params:{参数名参数值}
})