vue学习十四(嵌套路由、命名路由、命名视图、重定向)

本文主要是介绍vue学习十四(嵌套路由、命名路由、命名视图、重定向),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 嵌套路由
      • 命名路由
      • 命名视图
      • 重定向

嵌套路由

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Title</title>
</head><body><div id="app"><router-link to="/green" tag="li">green</router-link><router-link to="/fruit" tag="li">fruit</router-link><router-view></router-view></div><template id="green"><div>蔬菜<router-link to="/green/organic">有机</router-link><router-link to="/green/inorganic">无机</router-link><router-view></router-view></div></template><template id="fruit"><div>水果<router-link to="/fruit/sweet">甜的</router-link><router-link to="/fruit/acid">酸的</router-link><router-view></router-view></div></template></body><script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router@3.0.1/dist/vue-router.js"></script>
<script>//父路由 有蔬菜,水果,蔬菜里面有有机蔬菜,无机蔬菜 ,水果里面有甜的酸的let green = { template: '#green' }let organic = { template: "<div>有机蔬菜organic</div>" }let inorganic = { template: "<div>无机蔬菜inorganic</div>" }let fruit = { template: '#fruit' }let sweet = { template: "<div>甜的</div>" }let acid = { template: "<div>酸的</div>" }//路由路径映射表let routes = [//路由默认去的第一个组件{path: '',component: green},{path: "/green",component: green,children: [{path: "",component: organic},{path: "organic",component: organic},{path: "inorganic",component: inorganic}]},{path: "/fruit",component: fruit,children: [{path: "",component: sweet},{path: "sweet",component: sweet},{path: "acid",component: acid}]},//所有没有找到时候,去地址/green的组件{path: "*",redirect: '/green'}]//实例化一个路由let router = new VueRouter({routes})let vm = new Vue({el: "#app",data: {},router})
</script></html>

file:///Users/zhiliao/zhiliao/vue/index_test.html#/

green
fruit
蔬菜 有机 无机

file:///Users/zhiliao/zhiliao/vue/index_test.html#/green
file:///Users/zhiliao/zhiliao/vue/index_test.html#/green/organic

green
fruit
蔬菜 有机 无机
有机蔬菜organic

file:///Users/zhiliao/zhiliao/vue/index_test.html#/green/inorganic

green
fruit
蔬菜 有机 无机
无机蔬菜inorganic

file:///Users/zhiliao/zhiliao/vue/index_test.html#/fruit
file:///Users/zhiliao/zhiliao/vue/index_test.html#/fruit/sweet

green
fruit
水果 甜的 酸的
甜的

file:///Users/zhiliao/zhiliao/vue/index_test.html#/fruit/acid

green
fruit
水果 甜的 酸的
酸的

命名路由

有时候,通过一个名称来标识一个路由显得更方便一些,特别是在链接一个路由,或者是执行一些跳转的时候。你可以在创建 Router 实例的时候,在 routes 配置中给某个路由设置名称。


<body><div id="box"><router-link :to="{ name: 'foo'}">One</router-link><router-link :to="{ name: 'bar'}">Two</router-link><router-view></router-view></div><script>//1、定义 (路由) 模版组件const Foo = { template: '<div>第一个router</div>' }const Bar = { template: '<div>第二个router</div>' }//2、定义路由var routes = [{path: "/one",name: 'foo',component: Foo},{path: "/two",name: 'bar',component: Bar},];// 3、创建 router 实例var router = new VueRouter({routes});// 4、创建和挂载根实例const app = new Vue({router}).$mount('#box')</script>
</body>

效果图如下:

One Two
第一个router

命名视图

有时候想同时 (同级) 展示多个视图,而不是嵌套展示,例如创建一个布局,有 sidebar (侧导航) 和 main (主内容) 两个视图,这个时候命名视图就派上用场了。你可以在界面中拥有多个单独命名的视图,而不是只有一个单独的出口。如果 router-view 没有设置名字,那么默认为 default。

<router-view class="view one"></router-view>
<router-view class="view two" name="a"></router-view>
<router-view class="view three" name="b"></router-view>

我们来看一个例子:


<body><div id="box"><router-link to="/one">One</router-link><router-view name="a_view"></router-view></div><script>//1、定义 (路由) 模版组件const Foo = { template: '<div>第一个router</div>' }//2、定义路由var routes = [{path: "/one",// name: 'foo',components: {a_view: Foo,}}];// 3、创建 router 实例var router = new VueRouter({routes});// 4、创建和挂载根实例const app = new Vue({router}).$mount('#box')</script>
</body>

重定向

重定向也是通过 routes 配置来完成,下面例子是从 /a 重定向到 /b:

const router = new VueRouter({routes: [{ path: '/a', redirect: '/b' }]
})

重定向的目标也可以是一个命名的路由:

const router = new VueRouter({routes: [{ path: '/a', redirect: { name: 'foo' }}]
})

甚至是一个方法,动态返回重定向目标:

const router = new VueRouter({routes: [{ path: '/a', redirect: to => {// 方法接收 目标路由 作为参数// return 重定向的 字符串路径/路径对象}}]
})

我们来看一个例子:


<body><div id="box"><router-link to="/one">One</router-link><router-link to="/two">Two</router-link><router-view></router-view></div><!--定义模版--><template id="Foo"><div>第一个router</div></template><template id="Bar"><div>第二个router</div></template><script>//1、定义 (路由) 模版组件//2、定义路由var routes = [{path: '/oneone', redirect: '/one' },{path: "/one",component: { template: "#Foo" }},{path: "/two",component: { template: "#Bar" }},];// 3、创建 router 实例var router = new VueRouter({routes});// 4、创建和挂载根实例const app = new Vue({router}).$mount('#box')</script></body>

这篇关于vue学习十四(嵌套路由、命名路由、命名视图、重定向)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1125126

相关文章

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

Vue中插槽slot的使用示例详解

《Vue中插槽slot的使用示例详解》:本文主要介绍Vue中插槽slot的使用示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、插槽是什么二、插槽分类2.1 匿名插槽2.2 具名插槽2.3 作用域插槽三、插槽的基本使用3.1 匿名插槽

springboot+vue项目怎么解决跨域问题详解

《springboot+vue项目怎么解决跨域问题详解》:本文主要介绍springboot+vue项目怎么解决跨域问题的相关资料,包括前端代理、后端全局配置CORS、注解配置和Nginx反向代理,... 目录1. 前端代理(开发环境推荐)2. 后端全局配置 CORS(生产环境推荐)3. 后端注解配置(按接口

Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践举例

《Vue2项目中配置TailwindCSS和FontAwesome的最佳实践举例》:本文主要介绍Vue2项目中配置TailwindCSS和FontAwesome的最... 目录vue 2 项目中配置 Tailwind css 和 Font Awesome 的最佳实践一、Tailwind CSS 配置1. 安

Nginx路由匹配规则及优先级详解

《Nginx路由匹配规则及优先级详解》Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Ngin... 目录引言一、 Nginx的路由匹配规则概述二、 Nginx的路由匹配规则类型2.1 精确匹配(=)2

CSS3 布局样式及其应用举例

《CSS3布局样式及其应用举例》CSS3的布局特性为前端开发者提供了无限可能,无论是Flexbox的一维布局还是Grid的二维布局,它们都能够帮助开发者以更清晰、简洁的方式实现复杂的网页布局,本文给... 目录深入探讨 css3 布局样式及其应用引言一、CSS布局的历史与发展1.1 早期布局的局限性1.2

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示