vue路由配置、跳转、传参
一、vue路由
1、路由配置文件
(1)在router.js中导入Vue和VueRouter
(2)Vue调用VueRouter
Vue.use(VueRouter);
(3)将从VueRouter这个类中实例化出的路由配置导出,参数是一个对象,routes是当前项目能用到的所有的路由配置(一个数组),path为当前这个路由在url中的映射,component为当路由切换到path时,路由规定的展示区域展示的组件内容
(4)在router04中配置子路由,是在children这个数组中配置
(5)redirect为当前路由设置重定向,表示当路由切换到router04时,自动展示它的子路由child2
(6)path:" * " 表示当有错误操作时,自动跳转到child1这个路由中
2、main.js逻辑入口文件
(1)在main.js中导入路由配置对象
(2)引入到vue实例中
二、vue路由跳转
1、DOM跳转
router-link标签的to属性中填写路径
2、js跳转
在方法中使用this.$router.push()
push函数:只传字符串代表路由的path,传对象path,name和参数都可以传
三、路由传参
1、假设由b路由跳转到c路由
(1)在被跳转方路由(c)配置中配置一个标识符
(2)在b中route-link标签的to属性中携带参数
(3)在c中使用$route.params接收参数
二、params传参(list跳到detail)
(1)在detail中开启props接收模式(props:true)
(2)在list中router-link标签的to属性中传入一个对象
(3)在detail中使用$route.params接收参数
或者在props中接收参数,在DOM中以变量的形式使用它
props
1、在路由配置文件中找到参数接收方的配置,开启props接收模式(props:true)
2、在调用这个路由时,不能再以'/路由path/参数数据'的方式传值,而是to属性中传入一个对象({name:'xxx',params:{key:val}}).component()
3、可以使用$route.params.key的形式接收,也可以使用props接收
在当前组件的导出对象中,添加props:['key'],之后key就可以在当前组件中,作为一个类似于data中声明的变量去使用
优点:
1、传递过程中,参数数据不会再暴露在url中
2、在配置数据方的路由时,不用配置且限制参数个数,增加了这个组件的复用性
三、query传参
(1)传入一个对象
(2)在接收方使用$route.query接收参数
四、$router与$route的区别
$router控制去切换到指定的路由(设置)
$route是从当前的url中捕获路由信息(获取、接收)