Vue路由

路由

后端路由

本质:是前端请求的url地址 和 服务器资源的对应关系

前端路由

本质:浏览器地址栏的url 和 页面的对应关系

前端页面的的发展历程

  • 后端渲染,服务器压力大
  • ajax局部渲染,但是浏览器的前进和后退功能不能用
  • 单页面(spa single page application)应用: 整个项目只有一个页面
    • 浏览器地址栏的hash值 #
    • Html5 提供了一些方法也可以做到 pushhistory

Vue 的路由

Vue: Vuejs + 组件化 + 路由管理 + 状态管理 + cli

Vuejs

vue init webpack demo

install vue-router? 回车

基本使用 html + js

  • 下载并引入

    script src="vue.js"
    script src="vue-router.js"
    
  • 生成router实例对象

    let router = new VueRouter({
    
    })
    
  • 传递路由表参数

    let router = new VueRouter({
    	routes: [
    		{
    			path: "/login"
    			component: Login // Login 是组件对象,不是组件名称
    		}
    	]
    })
    
  • 将router实例挂载到vm实例的身上

    new Vue({
    	el: "#app",
    	router: router
    })
    
  • 在结构中生成一个路由出口

    <router-view></router-view>
    

迁移到脚手架

vue init webpack 项目名称

install vue-router? 回车

路由的嵌套

把一级路由的操作再写一遍

Router-view

编程式导航

this.$router 存了很多方法

  • push 跳转页面 this.$router.push("/home") 往浏览器历史记录栈内推入/home,所以可以返回到上一个页面
  • replace 跳转页面 this.$router.replace("/home") 将浏览器历史记录栈的最后一条替换为/home
  • back 返回上一页, this.$router.back() 浏览器的后退
  • forward 前进,this.$router.forward() 浏览器的前进
  • go(n), 如果n为正数,则代表前进n页,如果n为负数,则代表后退n页

路由传参

  • 查询字符串 ?id=1&name=zhang

    // 传
    this.$router.push("/home?id=1&name=admin")
    <router-link to="/home?id=1"></router-link>
    
    // 取
    this.$route.query.id
    
  • 动态路由传参(参数必须传递,否则无法匹配路由)

    // 修改路由表
    {
    	path: "/home/:id"
    }
    // 传
    this.$router.push("/home/3")
    // 接
    this.$route.params.id
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值