vue-router 动态路由
上一篇文章我们已经配置好了路由,下面,来说说如何实现动态路由。
比如,我想在 news 页点击列表项,跳转到对应项,如图所示:

这里引用的数据是豆瓣电影,地址:
http://api.douban.com/v2/movie/in_theaters
eg:当我点击第一项时,跳转地址为 : http://localhost:8080/#/content/26752088
第二项时,跳转地址为:http://localhost:8080/#/content/26925317
也就是 content/id 这里的id是不同的
实现方式有两种:
第一种:
<ul>
<li v-for="item in list">
<router-link :to="'/content/'+item.id">{{item.title}}</router-link>
</li>
</ul>
动态绑定 to 属性,传入 id,这里的 id 是 json 数据返回的
路由中需要这样写:
import Content from "./components/Content.vue" // 注册组件
// 路由配置
const routes = [
{path: '/home', component: Home},
{path: '/news', component: News},
{path: '/content/:id', component: Content},
{path: '*', redirect: '/home'} /*默认跳转路由*/
]
注意:content 项的 path 需要以 :xxx 的形式定义.
我们可以在 content 组件中 使用 生命周期函数 获取到 id 值
// content 组件中
mounted() {
console.log(this.$route.params) // 获取动态路由传值
}
实现效果:

第二种: get 方式传值
与第一种实现方式不同,但可以达到同样的效果,
当然,我们还是需要先引入组件
import Pcontent from "./components/Pcontent.vue"
我们先来看路由上的配置
const routes = [
{path: '/home', component: Home},
{path: '/news', component: News},
{path: '/content/:aid', component: Content},
{path: '/pcontent', component: Pcontent}, // 与正常注入一样
{path: '*', redirect: '/home'} /*默认跳转路由*/
]
<ul>
<li v-for="(item,key) in list">
<router-link :to="'/pcontent?id='+item.id">{{item.title}}</router-link>
</li>
</ul>
这里 to 属性同样需要动态绑定 与第一种区别在于 路径名称后面,是以 ? 自定义名称 = xxx 来定义的
获取 id 值
mounted() {
console.log(this.$route.query);
}
实现效果:

vue-router 动态路由的更多相关文章
- vue router动态路由
<div id="#app"> <router-link to="/user/header">路由1</router-link&g ...
- Vue 实现动态路由及登录&404页面跳转控制&页面刷新空白解决方案
Vue实现动态路由及登录&404页面跳转控制&页面刷新空白解决方案 by:授客 QQ:1033553122 开发环境 Win 10 Vue 2.9.6 node-v ...
- vue的动态路由(登录之后拿到动态路由通过addRouters()动态添加路由)
登录后我们拿到路由动态路由,后端传的数据可能为这个 { path: '/index', meta: { title: '首页', icon: 'icon-shouye', tab_index: , / ...
- vue --》动态路由的实现 (根据用户的权限来访问对应的模块)
为了设置用户的访问权限,所以在一个vue工程中,往往需要前端和后端开发人员共同配合设置动态路由, 进而实现根据用户的权限来访问对应的模块 1.首先在登录页面,前端跟据后端返回的路由信息进行配置,配置后 ...
- 浅谈vue之动态路由匹配
在日常开发过程中,可能会遇到一些类似于新闻详情页的内容,需要把所有详情页映射到同一组件上,这是动态路由匹配的应用场景之一.在使用的过程中,也遇到过一些小坑,此篇做个简要的总结说明: 基本使用 { pa ...
- Vue router 一个路由对应多个视图
使用命名路由 https://jsfiddle.net/posva/6du90epg/ <script src="https://unpkg.com/vue/dist/vue.js&q ...
- Vue 中的Vue Router一级路由,二级路由,三级路由以及跳转
今天编写了一下Vue中的路由 先用命令行新建一个空的项目,并且我知道要用路由,就下载了路由的相关依赖 vue init webpack demo5 完毕之后进入所在的项目 cd demo5 之后用vs ...
- Vue router 全局路由守卫
记录一下全局路由守卫的使用: 方法一:定义一个数组用于检测与管理需要登录的页面,全局路由守卫配合本地存储判断是否跳转 import Vue from 'vue' import Router from ...
- vue router引入路由与路由配置容易犯错的地方与常见的报错与处理报错
首先npm安装vue-router插件,就不说了其次: 先看下我本地的目录结构吧 第一步:在src目录下新建一个专门存放router的index.js文件里面的内容为: import Vue from ...
- 使用VUE开发用户后台时的动态路由问题、按钮权限问题以及其他页面处理问题
如今前后端分离是大势所趋,笔者虽然是做后台的,但也不得不学学前端的流行框架VUE -_-||| . 为了学习VUE,笔者搭建了一个简单的用户后台,以此来了解VUE的开发思路(注:本项目不用于实际开发, ...
随机推荐
- Area--->AreaRegister.RegisterAllArea()与Area区域的解析
文章引导 MVC路由解析---IgnoreRoute MVC路由解析---MapRoute MVC路由解析---UrlRoutingModule Area的使用 Area--->AreaRegi ...
- 使用latex绘制多层神经网络结构图
1,使用Tikz包: 2,参考官方例程单层神经网络结构,绘制了一个含有3隐藏层的BP神经网络节点图 代码如下: \documentclass{article} \usepackage{tikz} \b ...
- Django框架(二十七)—— ContentType组件
目录 ContentType组件 一.什么是ContentType组件 二.使用ContentType 三.使用场景总结 ContentType组件 一.什么是ContentType组件 conten ...
- centos7.3 安装gitlab
系统自带ruby版本太低,需要手动编译2.4版本
- Linux部署web项目
一.软件1.putty2.WinSCP 二.调试1.linux 下 apache启动.停止.重启命令基本的操作方法:本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合 ...
- python-模块 time, os, sys
时间模块 和时间有关系的我们就要用到时间模块.在使用模块之前,应该首先导入这个模块. #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time( ...
- Centos7.6安装教程 && history设置显示执行命令的时间
一.规划磁盘使用空间(磁盘总大小200GB) /dev/sda1 mount /boot 1G mount point /dev/sda2 mount / 100G /dev/sda3 mount / ...
- linux下又一次定位svn url方法
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/oudahe/article/details/34437661 linux下又一次定位svn url方 ...
- 修改elementUI 分页器背景色
添加background .sysBox .el-pagination.is-background .el-pager li:not(.disabled).active { background-co ...
- js中构造函数的原型添加成员的两种方式
首先,js中给原型对象添加属性和方法. 方式一:对象的动态特效 给原型对象添加成员 语法:构造函数.prototype.方法名=function (){ } 方式二:替换原型对象(不是覆盖,而是替换, ...