zoukankan      html  css  js  c++  java
  • 前端路由vue-router

    前端路由尝鲜

    • 前端路由是依靠hash值(锚链接)实现的

    • 下面我们就来实现一个简单的前端路由效果

    实现效果:就是一个Tab栏切换效果

    • 我们有两个区域,一个区域放置我们的按钮,

    • 另一个区域根据按钮的变化展示不用的内容

    • 页面理解

    • 在页面中有三个按钮,这三个按钮点击触发修改本页的hash

    • 通过window.onhashchange函数,监听hash值的变化,一旦变化,就修改vm中comName的值

    • vm中的comName的值一旦被修改,<component>标签中的is属性也会随着变动,然后就会去在家我们在vm中注册的组件,显示不同的组件在页面中

    三分钟初识 Vue Router

    都是Vue全家桶,怎么能少了Vue Router呢,它就是Vue官方提供的前端路由器,这里需要注意的就是,这个路由器依赖Vue.js,所有在引入依赖时,得放在vue.js后面

    • 下面我们来实现一个简单的Vue Router案列

    vue-router的嵌套路由

    • 顾名思义就是A页面点击后显示B组件,B组件中又有点击显示B组件内的子组件C

    • 这里涉及到VueRouter实列中routes数组内部对象的一个children属性

    • children属性的值同 routes数组中的对象一直,嵌套就是这么嵌套起的

    vue-router的动态路由匹配

    • 有这样一个场景,根据用户id查询用户信息,并渲染该用户的详细信息到页面

    • 每一个用户的id都是不同的,可是我们套用的组件模版是一个

    • 我们不可能单独为一个用户创建一个路由规则吧,动态路由一键搞定

    • 动态路由就涉及到一个传值问题,下面我们唠叨唠叨

    • 第一种传值方式已经在上面一个案列中演示了,点名不够优雅,遂弃之

    动态路由传值:props=true

    • 在上一个列子中,有说到取值不优雅的问题,下面我们解决这个问题

    动态路由传值:props为函数类型

    • 在上一个列子中,我们解决了传值不够优雅的问题,但是这种也有一定的局限,比如说我们传递多个值怎么办,这种场景是很常见,那就是传递一个函数

    动态路由传值:props对象类型

    • 为什么这个要放到最后来说呢,不是以为它最重要,而是我懒,因为这种方式和上一中方式大径相同,但是缺点也很明显,相对上面的函数类型,对象类型不能 获取动态路由传递过来的值,比如那个id,我们就不能传递过去,只能传递其他源来的值

    //其他不做改变,就变动这里,函数类型中有个route参数可以获取路由而来的值
    //这个无法获取路由对象
    props: {
      id: '1',
      uname: '李四',
      sex: '女性'
     }

    命名路由

    • 命名路由顾名思义就是给路由起一个名字,然后可以使用别名,具体见下

    编程式导航

    • 页面导航的两种方式

    • 声明式导航:通过点击链接实现导航的方式,比如a标签,Vue的router-link标签

    • 编程式导航:调用js形式的api方式,比如localtion.href

    • 解释哈

    • 开局两个按钮,一个没账户路由到注册页面,一个有账户路由到登陆后的页面

    • 路由注册页面后,使用编程式导航提供回退到登陆页面的按钮

    • 路由到登陆成功页面后,会完成在登陆页面的数据传递到登陆成功页面,并显示,其中使用编程式导航改变路由实现,基本方式都有详写

    完!

  • 相关阅读:
    C#委托及事件 详解(讲得比较透彻)
    浅谈前端常用脚手架cli工具及案例
    C++实现二分法详解
    重新整理 .net core 实践篇————重定向攻击[三十九]
    动态规划_备忘录法_矩阵链乘问题
    完了,又火一个项目
    DOM常用的属性和方法
    一些胡乱的吐槽
    Mac安装compass失败的原因
    css动画animation-keyframes
  • 原文地址:https://www.cnblogs.com/msi-chen/p/12679818.html
Copyright © 2011-2022 走看看