nuxt2生命周期执行顺序

生命周期存在服务端,服务端与客户端共有,客户端三个阶段的生命周期。

生命周期顺序如下:

服务端的生命周期
  • nuxtServerInit,在store文件夹下建立index.js文件。此生命周期会全局运行,无论访问那个vue文件,都会走
    nuxtServerInit 可接收两个参数store,content
export const state = {
  token: "123456",
};
export const mutations = {
  setToken(state, token) {
    state.token = token;
  },
};
export const actions = {
  /**
   *
   * @param {*} store 可获取到vuex上下文的数据
   * @param {*} content 可获取到nuxt上下文的数据
   */
  nuxtServerInit(store, content) {
    store.commit("setToken", "abc123");
    console.log("nuxtServerInit", store);
  },
};

  • middleware 中间件,第二个生命周期,也是执行每个vue文件都会运行的
  1. 需先在nuxt.config.js中进行配置router,设置的是全局middleware中间件
export default {
  /**
  * 配置router
  * auth 名字可以随意起,需要跟middleware文件夹下的xxx.js名称一致即可
  */
  router: {
    middleware: "auth",
  },
};
  1. 项目根目录下建立middleware文件夹,再建auth.js文件
export default function ({ store, route, redirect, params, query, req, res }) {
  // 根据获取到的参数,可以去判断路由跳转到哪个具体页面,或者根据参数去处理下其他逻辑
  console.log("middleware auth");
}

  1. 也可以设置局部的中间件,如建立一个list.vue, middleware文件夹下建立一个list.js,调用如下:
    list.vue
<template>
  <div>list 页面</div>
</template>
<script>
export default {
  name: "list",
  middleware: "list",  // 使用局部的中间件
  // 第二种写法如下
  middleware(){
      console.log('middleware list 局部')
  }
};
</script>

list.js

export default function () {
  console.log("middleware list 局部");
}
  1. 全局的中间件会先执行,然后再执行局部的中间件
  • validate 校验路由参数的,第三个生命周期执行,一般写在vue文件里的,如下:
<template>
  <div>
    首页
    <Tutorial />
  </div>
</template>

<script>
export default {
  name: "IndexPage",
  validate({ params, query }) {
  // 判断路由传参对不对,若是不符合规范,则可让页面跳转到404页面,不至于页面出现空白情况
    console.log("validate");
    return true;
  },
};
</script>
  • asyncData 方法会在组件(限于页面组件)每次加载之前被调用。它可以在服务端或路由更新之前被调用。在这个方法被调用的时候,第一个参数被设定为当前页面的上下文对象,你可以利用 asyncData方法来获取数据并返回给当前组件
// 注意:由于asyncData方法是在组件 初始化 前被调用的,所以在方法内是没有办法通过 this 来引用组件的实例对象。
 asyncData({ store, params }) {
 // 再此可调用接口,请求数据
    console.log("asyncData");
  },
  • fetch 方法的第一个参数是页面组件的上下文对象 context,我们可以用 fetch 方法来获取数据填充应用的状态树。为了让获取过程可以异步,你需要返回一个 Promise,Nuxt.js 会等这个 promise 完成后再渲染组件。
// 警告: 您无法在内部使用this获取组件实例,fetch是在组件初始化之前被调用
fetch({ app, store, params }) {
    console.log("fetch");
 },
服务端与客户端共有的生命周期

接下来是vue中生命周期,比较常用,就不做解释里。

  • beforeCreate
  • created
客户端的生命周期
  • beforeMount() {},
  • mounted() {},
  • beforeUpdate() {},
  • updated() {},
  • beforeDestroy() {},
  • destroyed() {},

一个vue文件生命周期完整的执行顺序:nuxtServerInit 》middleware 》 validate 》 asyncData 》 fetch 》beforeCreate 》 created 》beforeMount 》mounted 》 beforeUpdate 》 updated 》 beforeDestroy 》 destroyed

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/594878.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vite创建vue项目启动时域名为127.0.0.1修改为localhost不生效——问题解决

今天偶然间想起来年前整的一套vue3的框架&#xff0c;索性跑了一下&#xff0c;结果发现运行后地址为127.0.0.1而非localhost&#xff0c;所以想把域名改一下 找到vite.config.js文件中的export default defineConfig&#xff0c;在server中写入host:localhost 然后通过npm ru…

3d设计网站有哪些(2)?渲染100邀请码1a12

上次介绍了了几个设计网站&#xff0c;这次我们接着介绍。 1、Archive 3D Archive 3D是一个简单庞大的模型下载网站&#xff0c;可以下载的类型有家具、设备、飞行装备、门窗、厨房等。 2、3D Warehouse 3D Warehouse是预制3D模型网站&#xff0c;能与SketchUp无缝协作&…

软件杯 深度学习的水果识别 opencv python

文章目录 0 前言2 开发简介3 识别原理3.1 传统图像识别原理3.2 深度学习水果识别 4 数据集5 部分关键代码5.1 处理训练集的数据结构5.2 模型网络结构5.3 训练模型 6 识别效果7 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习…

EFDC模型安装及建模方法;在排污口论证、水质模拟、地表水环评、地表水水源地划分、水环境容量计算等领域中的应用

目录 专题一 EFDC软件安装 专题二 EFDC模型讲解 专题三 一维河流模拟实操 专题四 建模前处理 专题五 EFDC网格剖分介绍 专题六 EFDC二维湖库水动力模拟/非保守染色剂模拟 专题七 EFDC水质模型参数及原理介绍 专题八 EFDC一、二、三维湖库水质模拟 专题九 基于EFDC的地…

Aigtek射频功率放大器的主要功能是什么

射频功率放大器是一种专门用于放大射频信号功率的电子器件&#xff0c;它在无线通信、雷达系统、卫星通信等射频应用中起着至关重要的作用。下面将详细介绍射频功率放大器的主要功能。 信号放大&#xff1a;射频功率放大器的主要功能之一就是将传入的射频信号放大到所需的功率水…

使用 FFmpeg 从音视频中提取音频

有时候我们需要从视频文件中提取音频&#xff0c;并保存为一个单独的音频文件&#xff0c;我们可以借助 FFmpeg 来完成这个工作。 一、提取音频&#xff0c;保存为 mp3 文件: 要使用 FFmpeg 从音视频文件中提取音频&#xff0c;并将 ACC 编码的音频转换为 MP3 格式&#xff0…

利用PS中Lab颜色模式进行简单调色?

【原图】 详细步骤如下&#xff1a; Step 1 : 打开PS&#xff0c;打开素材&#xff0c;点菜单栏&#xff0c;【图像】-【模式】-【Lab颜色】&#xff0c;效果如下图 Step2&#xff1a;ctrl(或command)m打开曲线工具&#xff0c;选择a通道&#xff0c;效果如下图。 Step3: 把标…

埃及外宾亲临育菁 参观考察桌面CNC机床

随着我公司的规模不断壮大以及国际化建设工作的不断推进&#xff0c;广东育菁装备在国外的知名度也越来越高&#xff0c;4月25日&#xff0c;公司迎来了埃及外宾到访考察桌面型数控加工中心&#xff0c;桌面级数控车床等&#xff0c;育菁总经理杨先生等相关负责人对远到而来的埃…

git/gerrit使用遇到的问题

Push时出现的多个问题及其解决 branch【...】not found 这个错误通常出现在 Git 命令中指定的分支名称中包含特殊字符或者语法错误时。需要确保指定的分支名称是正确的&#xff0c;并且没有任何不支持的字符。 例如&#xff0c;如果分支名称是 feature/branch&#xff0c;应该…

写爬虫代码抓取Asterank中小行星数据

2024年5月4日 问题来源 解决方案 回顾2023年7月14日自己写的爬虫代码 import requests import re import pandas as pd texts[] def getData(page):#每页评论的网址urlhttps://item.jd.com/51963318622.html#comment#添加headers&#xff0c;伪装成浏览器headers{User-Agent:…

电脑切换窗口快捷键,让你轻松驾驭多个任务

在使用电脑时&#xff0c;经常需要切换不同的窗口&#xff0c;以便快速地访问不同的应用程序或任务。为了提高效率&#xff0c;掌握一些电脑切换窗口快捷键是非常重要的。本文将介绍三种在电脑上切换窗口的方法&#xff0c;帮助您更加高效地进行多任务处理。 方法1&#xff1a;…

FIFO Generate IP核使用——异步复位

FIFO Generator IP核提供了一个复位输入&#xff0c;当该输入被激活时&#xff0c;它会复位所有的计数器和输出寄存器。对于块RAM或分布式RAM实现&#xff0c;复位FIFO并不是必需的&#xff0c;可以在FIFO中禁用复位引脚。共有两种复位类型选项&#xff1a;异步复位和同步复位。…

Linux——mysql运维篇

回顾基本语句&#xff1a; 数据定义语言 ( DDL ) 。这类语言用于定义和修改数据库的结构&#xff0c;包括创建、删除和修改数据库、表、视图和索引等对象。主要的语句关键字包括 CREATE 、 DROP 、 ALTER 、 RENAME 、 TRUNCATE 等。 create database 数据库 &…

FreeRTOS为什么要区分任务函数和中断函数?

在我们之前的学习中&#xff0c;队列&#xff0c;信号量&#xff0c;互斥量&#xff0c;事件组&#xff0c;任务通知&#xff0c;它们都有两套函数&#xff0c;在任务中使用或在中断中使用。 1.为什么要用两套函数&#xff1f; 情景1&#xff1a; 我们在写队列的时候等待100…

图神经网络实战(9)——GraphSAGE详解与实现

图神经网络实战&#xff08;9&#xff09;——GraphSAGE详解与实现 0. 前言1. GraphSAGE 原理1.1 邻居采样1.2 聚合 2. 构建 GraphSAGE 模型执行节点分类2.1 数据集分析2.2 构建 GraphSAGE 模型 3. PinSAGE小结系列链接 0. 前言 GraphSAGE 是专为处理大规模图而设计的图神经网…

一般实现分布式锁都有哪些方式?使用 Redis 如何设计分布式锁?使用 zk 来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?

目录 1.Redis 分布式锁 &#xff08;1&#xff09;Redis 最普通的分布式锁 &#xff08;2&#xff09;RedLock 算法 2.zk 分布式锁 3.redis 分布式锁和zk分布式锁的对比 1.Redis 分布式锁 官方叫做 RedLock 算法&#xff0c;是 Redis 官方支持的分布式锁算法。 这个分布式…

C++ | Leetcode C++题解之第70题爬楼梯

题目&#xff1a; 题解&#xff1a; class Solution { public:int climbStairs(int n) {double sqrt5 sqrt(5);double fibn pow((1 sqrt5) / 2, n 1) - pow((1 - sqrt5) / 2, n 1);return (int)round(fibn / sqrt5);} };

从0到1:商场导览小程序开发笔记一

背景 购物中心与商场小程序&#xff1a;旨在提供便捷的购物、导航、活动报名、服务查询等功能&#xff0c;让用户更好地体验购物和享受服务。通过提供便捷的购物、信息查询和互动预约等功能&#xff0c;提升了商场的服务水平和用户体验&#xff0c;帮助商场与消费者建立更紧密…

mq发送消息之后,业务代码回滚,导致发了一条中奖消息给用户!!

背景是这样的&#xff1a;在一个名为"幸运大转盘"的线上活动中&#xff0c;用户可以通过消耗一定的积分来参与抽奖&#xff0c;有机会赢取各种奖品。这个活动的后台系统使用了消息队列&#xff08;MQ&#xff09;来处理用户的抽奖请求和发送中奖消息。 一天&#xf…

linux(ubuntu18.04.2) Qt编译 MySQL(8.0以上版本)链接库 Qt版本 5.12.12及以上 包含Mysql动态库缺失问题

整理这篇文档的意义在于&#xff1a;自己走了很多弯路&#xff0c;淋过雨所以想为别人撑伞&#xff0c;也方便回顾&#xff0c;仅供参考 一、搭建开发环境&#xff1a; 虚拟机&#xff08;ubuntu-20.04.6-desktop-amd64&#xff09;&#xff1a;Mysql数据库 8.0.36Workbench …
最新文章