Vue 路由基础
根据不同的用户url请求,返回不同的内容
本质是url请求和服务器资源的对应关系
路由与SPA
后端渲染导致频繁刷新,导致性能问题
ajax技术可以进行前端渲染,但是不支持前进后退操作
SPA的实现原理之一:利用基于URL的hash: 每个hash绑定对应的浏览记录
前端路由是SPA的核心
前端路由
根据不同的用户事件请求,返回不同的内容
本质是事件请求和服务器资源的对应关系,它负责事件监听,根据事件调取对应的事件函数
Vue-router
支持HTML5的历史模式和hash模式
支持嵌套路由
支持路由传参
支持编程式路由
支持命名路由
vue-router静态的基本使用
-
创建一个 new VueRouter()
-
里面注册路由地址,每个地址对应一个component 如:routes(路由规则): [{path: /address1, component: c1}, {path: /address1, component: c1}, ...]
-
页面中创建 router-link标签,它最终会默认转化为 a 标签,其中的to属性指向你想要加载的component的path
-
页面中创建 router-view标签,作为填充区域,用于显示你要加载的内容
-
如果想要重定向,可以将 routes的component 改为 redirect: other path
-
想要嵌套路由,即路由返回的结果中还有子级路由,可以先定义自己路由为组件,然后再VueRouter的规则里面添加children子规则
动态路由的使用方法
$route.params.attr 传参, attr为route里面定义的属性 :attr
父传子方式 routes里面对象添加 props: true, 然后给组件添加[‘attr],动态接收attr,如city路由
或者 props也可以直接传递 {attr1: a, attr2: b},子组件接收方式相似,但是path中原有的:attr就不回传到组件中
所以可以给props赋值为一个匿名函数 route=>{{...}}, 如host路由
