Vue.js (包含2.x和3.x) 总结04 (生命周期的钩子函数、路由导航、重定向、多级路由)

目录

一、生命周期的钩子函数

1、实例创建

1)实例创建之前

2)实例创建之后

2、模板渲染

1)模板渲染之前

2)模板渲染之后

3、数据更新

1)数据更新之前

2)数据更新之后

4、实例销毁

1)实例销毁之前

2)实例销毁之后

5、第一次执行哪些钩子函数

6、模板在什么时候渲染完毕?

7、父子组件的生命周期顺序

二、路由

1、创建路由

2、一级路由

3、路由导航

1)声明式导航

2)编程式导航

4、重定向

5、404页面

6、多级路由


一、生命周期的钩子函数

在程序运行的特定阶段内被自动调用的函数,即钩子函数。

生命周期的钩子函数,即在vue中实例从创建到销毁的过程中被自动调用的函数。

写在data、methods、watch、computed、components同级。

xxx( ){ }

1、实例创建

1)实例创建之前

beforeCreate

2)实例创建之后

created

2、模板渲染

1)模板渲染之前

beforeMount

2)模板渲染之后

mounted

3、数据更新

1)数据更新之前

beforeUpdate

2)数据更新之后

updated

4、实例销毁

1)实例销毁之前

beforeDestory

2)实例销毁之后

destoryed

5、第一次执行哪些钩子函数

前4个

6、模板在什么时候渲染完毕?

mounted

7、父子组件的生命周期顺序

父组件的前三个

子组件的前四个

父组件的第四个

二、路由

使用路由可以来完成spa单页面应用,因为传统的页面跳转再切换时,会有白屏问题,用户体验不好,但使用spa技术,就可以让页面间的切换达到app切换的效果,更加丝滑没有白屏用户体验更好。

路由的本质: 通过url的不同来渲染不同的组件页面。

创建项目时,通过控制上下箭头和空格选择Router插件。

1、创建路由

使用vue-router库来进行路由的创建

router文件夹用来配置路由

views文件夹用来存放页面

2、一级路由

1.在views文件夹中创建路由页面文件

2.在router文件夹下的index.js中配置路由规则(路由的本质是根据url的不同来切换不同的组件页面,所以需要配置新建页面与url的对照)

import Vue from 'vue'
import VueRouter from 'vue-router'
//引入
import OneDemo from '@/views/OneDemo.vue'
import TwoDemo from '@/views/TwoDemo.vue'
import ThreeDemo from '@/views/ThreeDemo.vue'
import FourDemo from '@/views/FourDemo.vue'

Vue.use(VueRouter)  //vue中使用路由

const routes = [
    //  配置路由规则
  {
    path: '/',   // url路径
    name: 'OneDemo', // 给当前组件起个名字
    component: OneDemo // 所关联的组件
  },
  {
      path: '/bbb', 
      name: 'TwoDemo',
      component: TwoDemo
  },
  {
      path: '/ccc',
      name: 'ThreeDemo',
      component: ThreeDemo
  },
  {
      path: '/ddd',
      name: 'FourDemo',
      component: FourDemo
  }
//   {
//     path: '/about',
//     name: 'about',
//     // route level code-splitting
//     // this generates a separate chunk (about.[hash].js) for this route
//     // which is lazy-loaded when the route is visited.
//     component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
//   }
]
const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

3、路由导航

通过点击路由导航 就可以达到页面切换的效果

1)声明式导航

就是类似于标签的方式,常用于用户需要点击跳转的,本质是a标签

router-link 完成页面跳转,里面有一个to属性设置跳转路径

选中样式类

在声明式导航中,vue会自动给选中的页面加一个类名

<template>
  <div id="app">
    <nav>
      <router-link to="/">AAA</router-link> |
      <router-link to="/bbb">BBB</router-link> |
      <router-link to="/ccc">CCC</router-link> |
      <router-link to="/ddd">DDD</router-link> 
    </nav>
    <router-view/>  //一级路由出口
  </div>
</template>

<style>
.router-link-exact-active{background-color: brown;}
</style>

2)编程式导航

就是类似于js的方式,常用于自动完成跳转

this.$router.push(“/去哪里”)//跳转页面   window.location.href

this.$router.replace('/去哪里') //替换当前页面

this.$router.go(+数-数) //正数前进 负数后退

4、重定向

重(重新)定(定位)向(方向)

在router文件夹下的index.js中

  // 重定向
  {
    path: '/',  //url路径
    // 重新定位到某个地址
    redirect:"/xxx"
  }

5、404页面

错误提示页面,404页面必须在所有规则的最下面

在router文件夹下的index.js中

// 404页面必须在所有规则的最下面
  {
    path: '*',  //url路径
    name: 'Nocom', //就是给当前配置起个名字
    component: Nocom  //关联的组件
  }

6、多级路由

就是在一级页面中嵌套局部页面切换,多级路由

1.创建路由页面 (写在views下)例如:

2.配置路由规则(必须在对应的一级路由规则中,使用children关键字进行配置)

import Vue from 'vue'
import VueRouter from 'vue-router'
import OneDemo from '@/views/OneDemo.vue'
import TwoDemo from '@/views/TwoDemo.vue'
import ThreeDemo from '@/views/ThreeDemo.vue'
import FourDemo from '@/views/FourDemo.vue'

// 引入二级路由
import Era from '@/views/er/ErA.vue'
import Erc from '@/views/er/ErC.vue'
import Erd from '@/views/er/ErD.vue'

Vue.use(VueRouter)  //vue中使用路由

const routes = [
    //  配置路由规则
  {
    path: '/aaa',   // url路径
    name: 'OneDemo', // 给当前组件起个名字
    component: OneDemo ,// 所关联的组件
    children:[ // 配置二级路由
        {
            path: '/era',
            name: 'Era',
            component: Era
        } ,
        {
            path: '/erc',
            name: 'Erc',
            component: Erc
        } ,
        {
            path: '/erd',
            name: 'Erd',
            component: Erd
        }
    ]
  },
  {
      path: '/bbb', 
      name: 'TwoDemo',
      component: TwoDemo
  },
  {
      path: '/ccc',
      name: 'ThreeDemo',
      component: ThreeDemo
  },
  {
      path: '/ddd',
      name: 'FourDemo',
      component: FourDemo
  },
  {
    path:'/',
    redirect:'/aaa'
  }

]
const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

3.设置路由出口

在对应的一级路由页面中加入路由出口

<template>
  <div>
    AAA
    
    <div>
        <router-link to="/era">二A</router-link>
        <router-link to="/erc">二C</router-link>
        <router-link to="/erd">二D</router-link>
    </div>
    <!-- 二级 路由出口 -->
    <router-view></router-view>
  </div>
</template>

小扩展  二级路由路径设置

在设置多级路由时,path路径加/,那么在路由导航中,to属性就是 /二级路由

在设置多级路由的时,path路径不加/ ,那么在路由导航中,to属性就是 /一级路由/二级路由

小扩展   图片放在public下,页面内引用图片时路径相对于index.html写,即

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值