Vue全家桶笔记07(黑马vue)--vue-router的基本使用,路由重定向,嵌套路由,动态匹配路由,props路由组件传递参数,命名路由的配置规则,vue-router编程式导航

1、vue-router的基本使用
  • 引入相关的库文件
  • 添加路由连接
    router-link是vue中提供的标签,默认会被渲染为a标签
    to属性默认会被渲染为href属性
    to属性的值默认会被渲染为#开头的hash地址
<div id="app">

<router-link to="/user">User</router-link>
<router-link to="/register">Register</router-link>
</div>
  • 添加路由填充位
    路由填充位(也叫路由占位符)
    将来通过路由规则匹配到的组件,将会被渲染到router-view所在的位置
  <router-view></router-view>
  • 定义路由组件
  let User={
   
    template:`<div>User</div>`
  }
  let Register={
   
    template:`<div>Register</div>`
  }

  • 配置路由规则并创建路由实例
 //配置路由规则并创建路由实例
  let router=new VueRouter(
    {
   
      routes:[
        //每个路由规则都是一个配置对象,其中至少包含path和component两个属性:
        //path表示当前路由规则匹配的hash地址
        //component表示当前路由规则对应要展现的组件
        {
   
          path:'/user',
          component:User
        },
        {
   
          path:'/register',
          component:Register
        },
      ]
    }
  )
  • 把路由挂载到vue根实例中去
const vm=new Vue({
   
    el:'#app',
    router:router,
    data:{
   

    }
  })

完整客户端代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div id="app">

  here is index page
<!--router-link是vue中提供的标签,默认会被渲染为a标签-->
<!--  to属性默认会被渲染为href属性-->
<!--  to属性的值默认会被渲染为#开头的hash地址-->

<router-link to="/user">User</router-link>
<router-link to="/register">Register</router-link>

<!--  路由填充位(也叫路由占位符)-->
<!--  将来通过路由规则匹配到的组件,将会被渲染到router-view所在的位置-->
  <router-view></router-view>
</div>

<script src="js/vue.js"></script>
<script src="js/vue-router.js"></script>

<script>
  //创建路由组件
  let User={
   
    template:`<div>User</div>`
  }
  let Register={
   
    template:`<div>Register</div>`
  }

  //配置路由规则并创建路由实例
  let router=new VueRouter(
    {
   
      routes:[
        //每个路由规则都是一个配置对象,其中至少包含path和component两个属性:
        //path表示当前路由规则匹配的hash地址
        //component表示当前路由规则对应要展现的组件
        {
   
          path:'/user',
          component:User
        },
        {
   
          path:'/register',
          component:Register
        },
      ]
    }
  )

  const vm=new Vue({
   
    el:'#app',
    router:router,
    data:{
   

    }
  })
</script>
</body>
</html>

服务器端代码

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const app = express();

// 启动静态资源服务
app.use(express.static('public'));
// 设置允许跨域访问该服务
app.all('*', function (req, res, next) {
   
  res.header("Access-Control-Allow-Origin", "*");
  res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  res.header('Access-Control-Allow-Headers', 'Content-Type');
  res.header('Access-Control-Allow-Headers', 'mytoken');
  next();
});
// 处理请求参数
app.use(bodyParser.urlencoded({
    extended: false }));
app.use(bodyParser.json());


// 监听端口
app.listen(3000,()=>{
   
    console.log('running...');
});

2、路由重定向

路由重定向指的是:用户在访问地址A的时候,强制用户跳转到地址c,从而展示特定的组件页面

通过路由规则的redirect属性,指定一个新的路由地址,可以很方便地设置路由的重定向

 //配置路由规则并创建路由实例
  let router=new VueRouter(
    {
   
      routes:[
        //每个路由规则都是一个配置对象,其中至少包含path和component两个属性:
        //path表示当前路由规则匹配的hash地址
        //component表示当前路由规则对应要展现的组件
        {
   
          path:'/',
          component:User
        },
        {
   
          path:'/user',
          component:User
        },
        {
   
          path:'/register',
          component:Register
        },
      ]
    }
  )
3、嵌套路由

1、嵌套路由功能分析

  • 点击父级路由链接显示模板内容
  • 模板内容中又有子级路由链接
  • 点击子级路由练剑显示自己模板内容

2、父级路由组件模板

  • 父级路由链接
  • 父组件路由填充位
<!DOCTYPE html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值