zoukankan      html  css  js  c++  java
  • vue-Router笔记

    前端路由 (vue.router)

    首先要了解一下

    HTML5中想要不刷新网页,更换页面内容有两种模式

    hash模式 和 history模式

    hash模式时,url跳转时后面会有一个#号,然后不太美观,所以我们通常选择history

    location.hash = url (压入栈堆----->后进先出)

    history.pushState(data,title,url) (压入栈堆----->后进先出)

    history.replaceState(data,title,url) 不压入栈堆,替换url

    history.back() ==history.go(-1) 后退一下网页

    history.forward() ==history.go(1) 前进一个网页

    history.go(2) 前进两个网页

    history.go(-2) 后退两个网页

     

    Vue.use(VueRouter)   使用VueRouter插件,在这之前要导入这个插件

    new VueRouter({})        创建一个VueRouter对象实例

    里面有一些常用属性:

    mode:绑定是hash或者history两种模式

    routes:映射列表(值为一个对象数组)

    routes映射列表

    {

        path:'/user/:userId',   //添加事需要在user后加 /:userId

        name:"User",            //名字

        component: User        //挂载的组件

    }

    如果想要配置一个显示的默认路径.我们可以在routes中添加一个映射

    {

        path: '/',    

        redirect: '/home'  

    }

    当url中的hash为空的时候,就是刚进来这个网址,为空,就把url定义为redirect所指定的路径. (redirect重定向)

     

    配置好组件,我们就该学习如何去使用组件:

    组件<router-link>

    <router-link to='/home' tag=' 标签名' replace active-class='类名'>

    to:用于指定跳转的路径

    tag:用于指定之后渲染成什么组件,默认是一个a标签

    replace:不会留下history的记录,指定了replace,后退键则不能返回上一个页面

    active-class: 对应的路由匹配成功是,会自动给当前元素设置一个router-link-active的class,通过active-class可以修改默认的名称,这个也可以在router文件下的index.js中router对象实例中通过linkActiveClass:类名 进行设置

    tip:1.在进行亮度显示的导航菜单或者底部的tabbar时,会使用到该类

    2.但是通常不会修改类的属性,会直接使用默认的router-link-active

    组件<router-view>

    占位 渲染某一个组件时,在这个位置进行展示

     

    路由由代码跳转,我们则需要在Vue.app中添加单击事件,绑定事件进行跳转

    关键代码,router每一个组件中都会有

    this.$router.push('/home')

    this,$router.push('/about')

     

    当我们想要点击用户的时候,url想要成为一下的形式

    localhost:8080/user/zhangsan

     

    添加组件router-link to属性输入路径,默认是一个a标签

    <router-link :to="'/user/'+userId">用户</router-link>

     date数据:  userId:"zhangsan",用户需要的动态绑定属性

    想要动态,我们需要对to使用v-bind:属性名或者简写’:属性名’

    routes列表中

    {

        path:'/user/:userId',   //添加时需要在user后加 /:userId

        name:"User",            //名字

        component: User        //挂载的组件

    }

    $router:是创建出来的router的实例(可以改变名字) 不过是创建实例的时候改

    $route: 当前谁活跃处于活动状态则拿到的就是谁

    两者不一样,要进行区分

     

    在User组件中,设置一个data属性,userId:this.$route.params.userId

    通过$route.params去拿userId的值,然后渲染到页面(parameters)

    userId是通过routes中映射的,所以取的时候名字要一致

     

    路由的懒加载

    大概意思就是需要你的时候,你再加载,可以减少用户的白屏时间懒加载写法

    ()=>import('../views/Home.vue') 箭头函数返回加载的内容

    举个例子:建议写法

    const Home = ()=>import('../views/Home.vue')

    const About = ()=>import('../views/About.vue')

    const User = ()=>import('../views/User.vue')

    变量都在一个地方,便于集中管理,然后分别添加到需要绑定组件的地方

     

    组件套用

    当我们想在父组件下面套用组件的话我们需要有子组件,然后再父组件使用.方法如下

    在routes映射表中,找到需要套用子组件的父组件,在其内部添加一个children属性,属性的值为一个对象,里面依然有path,name,compont属性,依次类推

    在父组件中定义绑定routes映射表 在父组件中定义不用加/直接加要展示的路径

     

    在父组件中使用子组件,主义router-link to="url" url需要加上父组件的/about

     

    运行结果如下:

     

  • 相关阅读:
    用电脑给手机安装App
    切换皮肤的实现
    瀑布流的简单实现
    HTML5的实用
    HTML5的特性,发展,及使用
    录音的使用步骤
    支付宝集成步骤
    美团(iPad)顶部界面的简单实现, 及开发时常见bug
    真机调试/打包测试/程序发布/内购的具体操作流程
    IOS 触摸事件的处理
  • 原文地址:https://www.cnblogs.com/junlebao/p/vue-Router.html
Copyright © 2011-2022 走看看