Vue路由 -- 编程式导航

Vue路由编程式导航有2种方式:

        ①、router.push(location, onComplete?, onAbort?)

        ②、router.replace(location, onComplete?, onAbort?)

区别:push会向 history 添加新记录,replace不会向 history 添加新记录。下述使用push方式记录  name,path,传参得到的结果

一、push(location)参数为字符串

        1、location参数内容为路由的name值

html内定义一个btn
push参数为路由的name值
浏览器运行结果 -- 跳转成功到user

 2、location参数内容为路由的path值

push参数为路由的path值
浏览器运行结果 -- 跳转成功到user

 3、location参数内容为为任意的字符串(没有在路由中定义的字符串)

bar字符串并不在routes中
浏览器运行结果 --结果跳转成功,没有报错,path有值

二、push(location)参数为对象类型

    1、使用name和params组合

浏览器测试结果 -- 导航参数传递了过来

            注意:此情况下刷新浏览器,params参数会丢失

 2、使用name和query组合

浏览器测试结果 -- 导航参数通过拼接在url后面传递过来

 注意:跟在url后面的参数,刷新浏览器依旧保留

 3、使用path和params组合

浏览器测试结果 -- path和params使用,params会被忽略

注意:Vue Router官网解释:如果提供了 path,params 会被忽略。

4、使用path和query组合

浏览器测试结果 -- path和query使用,参数接在url后面

注意:跟在url后面的参数,刷新浏览器依旧保留

三、命名路由

routes内使用动态路由配置,push()方法内容params对象必须有一个名称和routes内的path动态参数名称一致。如上id
浏览器测试结果 -- 路由/:id的值为动,this.$route的params的值存在

注意:命名路由的最后一个值为动态的,且刷新浏览器params参数有值。

           适合使用在页面跳转带参数,但是又不想跟在url?后面时使用

四、跳转页面接参方式

        1、代码写法

        2、html写法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容