vue.js中Vue-router 2.0基础实践教程

发布时间 - 2026-01-11 01:01:12    点击率:

前言

Vue.js的一大特色就是构建单页面应用十分方便,既然要方便构建单页面应用那么自然少不了路由,vue-router就是vue官方提供的一个路由框架。本文主要介绍了Vue-router 2.0的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:

一、基础用法:

<div id="app"> 
 <h1>Hello App!</h1> 
 <p> 
  <!-- 使用 router-link 组件来导航. --> 
  <!-- 通过传入 `to` 属性指定链接. --> 
  <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 --> 
  <router-link to="/foo">Go to Foo</router-link> 
  <router-link to="/bar">Go to Bar</router-link> 
 </p> 
 <!-- 路由出口 --> 
 <!-- 路由匹配到的组件将渲染在这里 --> 
 <router-view></router-view> 
</div> 
 
<template id='foo'> 
 <p>this is foo!</p> 
</template> 
<template id='bar'> 
 <p>this is bar!</p> 
</template> 
// 1. 定义(路由)组件。 
// 可以从其他文件 import 进来 
const Foo = { template:'#foo' }; 
const Bar = { template:'#bar' }; 
// 2. 定义路由 
// 每个路由应该映射一个组件。 其中"component" 可以是 
// 通过 Vue.extend() 创建的组件构造器, 
// 或者,只是一个组件配置对象。 
const routes = [ 
 { path: '/foo', component: Foo }, 
 { path: '/bar', component: Bar } 
]; 
// 3. 创建 router 实例,然后传 `routes` 配置 
// 你还可以传别的配置参数, 不过先这么简单着吧。 
const router = new VueRouter({ routes:routes }); 
// 4. 创建和挂载根实例。 
// 记得要通过 router 配置参数注入路由, 
// 从而让整个应用都有路由功能 
const app = new Vue({ router:router }).$mount('#app'); 

二、动态路由匹配:

<div id="app"> 
 <h1>Hello App!</h1> 
 <p> 
  <router-link to="/user/foo/post/123">Go to Foo</router-link> 
  <router-link to="/user/bar/post/456">Go to Bar</router-link> 
 </p> 
 <router-view></router-view> 
</div> 
 
<template id='user'> 
 <p>User:{{ $route.params.id }},Post:{{$route.params.post_id}}</p> 
</template> 
// 1. 定义组件。 
const User = { 
 template:'#user', 
 watch:{ 
  '$route'(to,from){ 
   console.log('从'+from.params.id+'到'+to.params.id); 
  } 
 } 
}; 
// 2. 创建路由实例 (可设置多段路径参数) 
const router = new VueRouter({ 
 routes:[ 
  { path:'/user/:id/post/:post_id',component:User } 
 ] 
}); 
//3. 创建和挂载根实例 
const app = new Vue({ router:router }).$mount('#app'); 

三、嵌套路由:

<div id="app"> 
 <h1>Hello App!</h1> 
 <p> 
  <router-link to="/user/foo">Go to Foo</router-link> 
  <router-link to="/user/foo/profile">Go to profile</router-link> 
  <router-link to="/user/foo/posts">Go to posts</router-link> 
 </p> 
 <router-view></router-view> 
</div> 
 
<template id='user'> 
 <div> 
  <h2>User:{{ $route.params.id }}</h2> 
  <router-view></router-view> 
 </div> 
</template> 
 
<template id="userHome"> 
 <p>主页</p> 
</template> 
 
<template id="userProfile"> 
 <p>概况</p> 
</template> 
 
<template id="userPosts"> 
 <p>登录信息</p> 
</template> 
// 1. 定义组件。 
const User = { 
 template:'#user' 
}; 
const UserHome = { 
 template:'#userHome' 
}; 
const UserProfile = { 
 template:'#userProfile' 
}; 
const UserPosts = { 
 template:'#userPosts' 
}; 
// 2. 创建路由实例 
const router = new VueRouter({ 
 routes:[ 
  { path:'/user/:id', component:User, 
   children:[ 
    // 当 /user/:id 匹配成功, 
    // UserHome 会被渲染在 User 的 <router-view> 中 
    { path: '', component: UserHome}, 
    // 当 /user/:id/profile 匹配成功, 
    // UserProfile 会被渲染在 User 的 <router-view> 中 
    { path:'profile', component:UserProfile }, 
    // 当 /user/:id/posts 匹配成功 
    // UserPosts 会被渲染在 User 的 <router-view> 中 
    { path: 'posts', component: UserPosts } 
   ] 
  } 
 ] 
}); 
//3. 创建和挂载根实例 
const app = new Vue({ router:router }).$mount('#app'); 

四、编程式路由:

<div id="app"> 
 <h1>Hello App!</h1> 
 <p> 
  <router-link to="/user/foo">Go to Foo</router-link> 
 </p> 
 <router-view></router-view> 
</div> 
 
<template id='user'> 
 <h2>User:{{ $route.params.id }}</h2> 
</template> 
 
<template id="register"> 
 <p>注册</p> 
</template> 
// 1. 定义组件。 
const User = { 
 template:'#user' 
}; 
const Register = { 
 template:'#register' 
}; 
// 2. 创建路由实例 
const router = new VueRouter({ 
 routes:[ 
  { path:'/user/:id', component:User }, 
  { path:'/register', component:Register } 
 ] 
}); 
//3. 创建和挂载根实例 
const app = new Vue({ router:router }).$mount('#app'); 
 
//4.router.push(location) 
router.push({ path: 'register', query: { plan: 'private' }}); 

五、命名路由:

<div id="app"> 
 <h1>Named Routes</h1> 
 <p>Current route name: {{ $route.name }}</p> 
 <ul> 
  <li><router-link :to="{ name: 'home' }">home</router-link></li> 
  <li><router-link :to="{ name: 'foo' }">foo</router-link></li> 
  <li><router-link :to="{ name: 'bar', params: { id: 123 }}">bar</router-link></li> 
 </ul> 
 <router-view class="view"></router-view> 
</div> 
 
<template id='home'> 
 <div>This is Home</div> 
</template> 
 
<template id='foo'> 
 <div>This is Foo</div> 
</template> 
 
<template id='bar'> 
 <div>This is Bar {{ $route.params.id }}</div> 
</template> 
const Home = { template: '#home' }; 
const Foo = { template: '#foo' }; 
const Bar = { template: '#bar' }; 
 
const router = new VueRouter({ 
 routes: [ 
  { path: '/', name: 'home', component: Home }, 
  { path: '/foo', name: 'foo', component: Foo }, 
  { path: '/bar/:id', name: 'bar', component: Bar } 
 ] 
}); 
 
new Vue({ router:router }).$mount('#app'); 

六、命名视图:

<div id="app"> 
 <router-link to="/">Go to Foo</router-link> 
 <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> 
</div> 
 
<template id='foo'> 
 <div>This is Foo</div> 
</template> 
 
<template id='bar'> 
 <div>This is Bar {{ $route.params.id }}</div> 
</template> 
 
<template id='baz'> 
 <div>This is baz</div> 
</template> 
const Foo = { template: '#foo' }; 
const Bar = { template: '#bar' }; 
const Baz = { template: '#baz' }; 
 
const router = new VueRouter({ 
 routes: [ 
  { 
   path: '/', 
   components: { 
    default:Foo, 
    a:Bar, 
    b:Baz 
   } 
  } 
 ] 
}); 
 
new Vue({ router:router }).$mount('#app'); 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# vuerouter  # 2.0  # vue  # router  # 2.0文档  # Vuejs+vue-router打包+Nginx配置的实例  # vue系列之requireJs中引入vue-router的方法  # vue.js vue-router如何实现无效路由(404)的友好提示  # Vue.js实战之利用vue-router实现跳转页面  # VueJs路由跳转——vue-router的使用详解  # Vue.js路由组件vue-router使用方法详解  # Vue.js第二天学习笔记(vue-router)  # JavaScript封装Vue-Router实现流程详解  # 都有  # 在这里  # 相关内容  # 你还  # 一大  # 来看看  # 这篇文章  # 只是一个  # 谢谢大家  # 这么简单  # 少不了  # 而让  # 路由功能  # 有疑问  # template  # import  # const  # Bar 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 专业商城网站制作公司有哪些,pi商城官网是哪个?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  文字头像制作网站推荐软件,醒图能自动配文字吗?  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  南京网站制作费用,南京远驱官方网站?  lovemo网页版地址 lovemo官网手机登录  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  如何快速搭建高效WAP手机网站?  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  成都网站制作公司哪家好,四川省职工服务网是做什么用?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  在Oracle关闭情况下如何修改spfile的参数  高防服务器租用首荐平台,企业级优惠套餐快速部署  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  三星网站视频制作教程下载,三星w23网页如何全屏?  linux写shell需要注意的问题(必看)  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  简单实现Android文件上传  java获取注册ip实例  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  浅述节点的创建及常见功能的实现  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  如何打造高效商业网站?建站目的决定转化率  Android实现代码画虚线边框背景效果  如何解决hover在ie6中的兼容性问题  PythonWeb开发入门教程_Flask快速构建Web应用  米侠浏览器网页背景异常怎么办 米侠显示修复  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  免费视频制作网站,更新又快又好的免费电影网站?  JS实现鼠标移上去显示图片或微信二维码  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  制作公司内部网站有哪些,内网如何建网站?  如何在阿里云高效完成企业建站全流程?  Python数据仓库与ETL构建实战_Airflow调度流程详解  网站页面设计需要考虑到这些问题  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  奇安信“盘古石”团队突破 iOS 26.1 提权  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?