vue-router 学习快速入门
vue-router快速入门
配置路由
$npminstallvue-router--save
routes.js
importHomefrom'./pages/Home.vue' importGifsfrom'./pages/Gifs.vue' importUserfrom'./pages/User.vue' exportconstroutes=[ {path:'',component:Home}, {path:'/gifs',component:Gifs}, {path:'/user/:id',component:User} //指定路由和对应要渲染的组件 //404的path应该是'*',要放在最末尾,当前面的都匹配不到时才匹配到404页面 //this.$route.params.id可以从路由中拿到id数据 ]
main.js
importVueRouterfrom'vue-router' import{routes}from'./routes' Vue.use(VueRouter) //路由初始化 constrouter=newVueRouter({ routes }) //将路由注入根组件 newVue({ el:'#app', ... router, render:h=>h(App) })
App.vue
<template> <divclass="app"> <router-view></router-view> </div> </template>
在模板中标注出组件渲染的位置
#号的含义
#号前表示的是发送给服务端的请求,要求返回html文件,而#号后表示的是发送给本地js的请求以寻求解决
路由参数动态绑定
使用watch
watch:{ '$route'(to,from){ //to当前路由,from上一个路由 this.id=to.params.id } }
路由的数据传递
<router-link:to="{name:'userEdit',params:{id:$route.params.id},query:{locale:'en',list:2}}"></router-link>
传query参数可以达到地址栏出现/?locale=en&list=2
通过$route.query.键名来访问
命名视图
router-view可以通过配置名字name来指定组件渲染的位置,增加了组件的复用性,比如分成headermainherofooter来分别在一个视图中的不同位置上加载不同的组件
组件懒加载
我们只需要加载我们需要的组件呈现给用户,而其他不需要第一时间加载的组件,可以使用webpack实现异步加载,只在需要的时候才会发出请求,请求加载另一个组件
routes.js
constUser=resolve=>{ require.ensure(['./components/user/User.vue'],()=>{ resolve(require('./components/user/User.vue')) },'GroupName') } //webpack异步加载,通过组名,将要同时一起加载的组件打包加载
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。