首页 > 其他分享 >前端路由

前端路由

时间:2022-11-09 17:02:06浏览次数:55  
标签:前端 User path router id 路由 user

1.路由基本概念和原理

(1)路由

本质:对应关系

  • 后端路由:根据不同用户URL请求,返回不同内容

                本质:URL请求地址与服务器资源之间的对应关系

  • 前端路由:根据不同的用户事件,显示不同的页面内容

               本质:用户事件与事件处理函数之间的对应关系

(2)实现简易前端路由

基于URL中的hash实现(点击菜单的时候改变URL的hash,根据hash的变化控制组件的切换)

(3)Vue Router

https://router.vuejs.org/zh/

功能:

  • 支持HTML5历史模式或hash模式
  • 支持嵌套路由
  • 支持路由参数
  • 支持编程式路由
  • 支持命名路由

2.vue-router的基本使用

(1)基本使用步骤

  • 引入相关的库文件

<script src = "./lib/vue-2.5.22.js"></script>

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

  • 添加路由连接

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

<router-link to = "/register">Resgister</router-link>

  • 添加路由填充位

<router-view></router-view>

  • 定义路由组件

var User = {

  template: '<div>User</div>'

}

var Register = {

  template: '<div>Register</div>'

}

  • 配置路由规则并创建路由实例

var router = new VueRouter({

  router: [

        {path: '/user', component:User},

        {path: '/register', component:Register}

   ]         //path表示当前路由规则匹配的hash地址,component表示当前路由规则对应要展示的组件

})

  • 把路由挂载到vue根实例中

new Vue({

     el: '#app',

     router            //为了能够让路由规则生效,必须把路由有对象挂载到vue实例对象上

})

(2)路由重定向

用户在访问地址A时,强制用户跳转到地址C,从而展示特定组件页面

通过路由规则的redirect属性,指定一个新的路由地址

{path:'/', redirect:'/user'}

3.vue-router嵌套路由

(1)用法

const Register = {

  template: '<div>

              <h1>Register组件</h1>

              <hr/>

              <router-link to="/register/tab1">Tab1</router-link>

              <router-link to="/register/tab2">Tab2</router-link>

              //子路由填充位置

              <router-view/>

              </div>'

}

const router = new VueRouter({

     router: [

           {path:'/user', component:User},

           {

             path: '/register',

             component: Register,

              children: [

                    {path:'/register/tab1', component:Tab1},

                    {path:'/register/tab2', component:Tab2}

             ]

          }

    ]

})

4.动态路由

(1)用法

var router = new VueRouter({

    router: [

          {path:'/user/:id', component: user}

    ]      //动态路径参数以冒号开头

})

const User = {

      template: '<div>User{{$router.oarams.id}}</div>'

}       //路由组件中通过$router.params获取路由参数

(2)路由组件传参

  • props的值为布尔类型

const router = new VueRouter({

   router: [

          {path:'/user/:id', component:user, props:true}

     ]

})

const User = {

    props:['id'],

    template:'<div>用户ID:{{id}}</div>'

}

  • props的值为对象类型

const router = new VueRouter({

      router:[

           {path:'/user/:id', component:User, props:{uname:'off', age:30}}

       ]

})

const User = {

   props:['uname', 'age'],

   template:'<div>用户信息:{{uname + '---' +age}}</div>'

}

  • props的值为函数类型

const router = new VueRouter({

     router: [

          {path: '/user/:id',

           component: User,

           props: route => ({uname:'tay', age: 30, id:route,params:id})}

      ]

})

const User = {

 props:['uname', 'age', 'id'],

template:'<div>用户信息:{{uname + '---' + age + '---' + id}}</div>'

}

5.Vue-router命名路由

给路由规则起一个别名

const router = new VueRouter({

    router: [

           {

             path: '/user/:id'

             name: 'user',

             component: User

           }

      ]

})

<router-link :to = ''{name:'user', params: {id: 123}}">user</router-link>

router.push({name: 'user', params: {id:123}})

标签:前端,User,path,router,id,路由,user
From: https://www.cnblogs.com/qqlzs/p/16874099.html

相关文章

  • Vue 路由跳转后刷新页面404解决办法
    第一种解决方法:将vue路由模式mode:'history'修改为mode:'hash';//router.js文件constrouter=newRouter({//mode:'history',mode:'hash',routes:[{path:......
  • 路由器交换机配置域账号登录
    服务器配置1.添加网络策略服务(NAPS)      2.新建用户组   3.配置NAPS                             ......
  • 前端pink老师网课
    0p前言先听与看,动手练习,分享交流1p品优购静态网站基础班精通网页布局html5基础,没有兼容性的标签css3基础,传统企业网页制作h5c3,有一定兼容性,与未来更好地接轨品优购电......
  • 如何登录锐捷设备(路由篇
    大家好,我是小杜,今天又是元气满满的一天,啃完手中的“精神食粮”,趁着还有些时间先温习下之前记录的笔记。一目十行看完之前的笔记,那就继续今天既定的内容,还是一样的了解......
  • 京东前端经典react面试题合集
    为什么调用setState而不是直接改变state?解答如果您尝试直接改变组件的状态,React将无法得知它需要重新渲染组件。通过使用setState()方法,React可以更新组件的UI。另......
  • 腾讯前端二面常考react面试题总结
    你理解“在React中,一切都是组件”这句话。组件是React应用UI的构建块。这些组件将整个UI分成小的独立并可重用的部分。每个组件彼此独立,而不会影响UI的其余部分。......
  • 前端零配置打包工具 parceljs 体验
    参考https://www.parceljs.cn/getting_started.htmlparceljs中文官网https://www.parceljs.cn/getting_started.htmlParcel1版本的中文文档https://v2.parceljs.cn......
  • 表单——前端基础
    知识点:1.表单的三元素:表单域            表单控件(表单元素)            提示信息2.在写表单元素之前,要写表单域。整个都要......
  • VUE中的路由router
    首先,需要下载去​​Vue.js官网​​​或者​​Vue.js菜鸟教程​​​下载​​vue-router.js插件​​。vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建......
  • 前端基础知识整理汇总(下)
    接上前面两期的内容,《​​前端基础知识整理汇总(上)​​​》、《​​前端基础知识整理汇总(中)​​》,如果你还没有看前面内容的话,建议你可以点开连接看看,也可以收藏着有空的时候......