Vue生命周期、钩子、路由

本文深入解析Vue组件的生命周期钩子,包括beforeCreate、created、beforeMount等,并介绍如何在路由中运用这些钩子实现组件的动态加载与重定向。同时涵盖前端路由配置、动态路由、嵌套路由和懒加载等实用技巧。
摘要由CSDN通过智能技术生成

Vue生命周期、钩子、路由

生命周期

Vue生命周期
vue生命周期是指vue实例对象从创建之初到销毁的过程,vue所有功能的实现都是围绕其生命周期进行的,在生命周期的不同阶段调用对应的钩子函数实现组件数据管理和DOM渲染两大重要功能。
在这里插入图片描述

钩子

8个钩子函数
beforeCreate 创建Vue实例之前
created 创建实例成功(一般在这里实现数据的异步请求)
beforeMount 渲染DOM之前(加载组件第一次渲染)
mounted 渲染DOM完成(加载组件第一次渲染)
beforeUpdate 重新渲染之前(数据更新等操作控制DOM重新渲染)
updated 重新渲染完成
beforeDestroy 销毁之前
destroyed 销毁完成

生命周期钩子函数,可以在初始化实例时,添加自己的代码;
生命周期的钩子函数中的this,会默认指向Vue的实例;

beforeCreate created [可以获取数据及方法]
beforeMount mounted [可以获取到真实的DOM]
beforeUpdate updated [数据更新执行]
beforeDestroy destroyed [销毁vue实例,不再具有双向数据绑定的特点]

路由

1.路由的基本概念:
路由是一个比较广义和抽象的概念,路由的本质就是对应关系。
路由分为:前端路由 后端路由

2.前端路由:
概念:根据不同的用户事件,显示不同的页面内容
本质:用户事件与事件处理函数之间的对应关系

3.Vue Router
支持嵌套路由
支持路由参数
支持编程式路由
支持命名路由

基本使用方法:

脚手架使用Vue Router
//1.下载安装
yarn add vue-router | cnpm i vue-router -S

//2.引入vue-router
import router from 'vue-router'

//3.注册
Vue.use(router)

//4.配置路由表
const router = ({
    mode:路由的模式
    //路由表
    routes:[
        { path:'/news',component:News }
        { path:'/index',component:Index }
    ]
})

//5.把router实例注入到vue根实例,就可以使用路由
const app = new Vue({
    router
}).$mount('#app')

//6.在components或者views中创建好路由组件

//7.添加路由链接
<!-- router-link是vue中提供的标签,默认会被渲染成a标签 >
<!-- to属性默认会被渲染成herf属性 -->
<!-- to属性的值默认会被渲染成为#开头的hash地址 -->
<router-link to="news">news</router-link>
<router-link to="city">city</router-link>

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

路由重定向
路由重定向指的是:用户在访问地址A的时候,强制用户跳转到地址C,从而展示特定的组件页面。
通过路由规则的redirect属性,指向一个新的路由地址,可以方便地设置路由的重定向

const routes = [
        //其中path表示的是需要被重定向的原地址,redirect表示将要被重定向的新地址
        { path:'/',
          redirect:'/user' 
         },
        { path:'/news',
          component:User 
         },
        { path:'/city',
         component:City 
         },
    ]

嵌套路由用法
1.父路由组件模板

父路由链接
父路由填充位
<div>
    <router-link to='/user'>User</router-link>
    <router-link to='/news'>News</router-link>
</div>
<div>
    <!-- 控制组件显示位置 -->
    <router-view></router-view>
</div>

嵌套路由

父级路由通过children属性配置子级路由
const  routes = [
        { path:'/user',
         component:User 
         },
        { 
            path:'/news',
            component:News,
            children:[
                { path:'/news/tab1',
                  component:Tab1 、
                 },
                { path:'/news/tab2',
                  component:Tab2 
                 },
            ]
        },
    ]   

动态路由
在某些情况,一个页面的path路径可能是不确定的,比如我们进入用户页面时,希望路径是:/user/userId,这种path和component的匹配关系称之为动态路由

{
	path:'user/userId',
	component:User
}
<div>
	<h2>{{$route.params.userId}}<h2/>
</div>
<route-link :to="'/user/'+userId">用户</route-link>

路由懒加载

懒加载也叫延迟加载,即在需要的时候进行加载,随用随载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值