手拉手Vue3生命周期实战应用

每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到 DOM,以及在数据改变时更新 DOM。在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在特定阶段运行自己的代码

创建期:beforeCreate、created

挂载期:beforeMount 、mounted

更新期:beforeUpdate、updated

销毁期:beforeUnmount 、unmountd

<script>
export default{
beforeCreate(){console.log("创建之前")
},
created(){console.log("创建之后")
},
beforeMount(){console.log("挂载之前")
},
mounted(){console.log("挂载之后")
},
beforeUpdate(){console.log("更新之前")
},
updated(){console.log("更新之后")
},
beforeUnmount(){console.log("销毁之前")
},
unmountd(){console.log("销毁之后")
}
}
</script>

应用场景

组件的生命周期是非常重要的,常见的应用场景:

1、 通过ref获取元素DOM结构

2、 axios网络请求渲染数据

ref获取元素DOM结构

使用ref 属性,挂载结束后引用会暴露在$refs.

<template><!--创建期:beforeCreate、created挂载期:beforeMount 、mounted更新期:beforeUpdate、updated销毁期:beforeUnmount 、unmountd--><p ref="life">组件生命周期</p></template><script>export default{mounted(){console.log(this.$refs.life)}}</script>

axios网络请求渲染数据

Axios,是一个基于promise 的网络请求库,作用于node.js和浏览器中,它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生node.js http模块, 而在客户端 (浏览端) 则使用XMLHttpRequest。

项目下安装axios依赖

yarn add axios

组件引用
import axios from 'axios'

CompnentLife.vue

<template><!--创建期:beforeCreate、created挂载期:beforeMount 、mounted更新期:beforeUpdate、updated销毁期:beforeUnmount 、unmountd--><p ref="life">组件生命周期</p><p v-for="(info,index) in dataInfo" :id="index">{{info}}</p></template><script>import axios from 'axios'export default{data(){return{dataInfo: []}},mounted(){console.log(this.$refs.life);axios({method:"get",url:"http://localhost:8007/OS/getOSInfo",// changeOrigin:true  允许跨域}).then(res=>{console.log(res.data)this.dataInfo=res.data;})}}</script>

效果

vue全局绑定axios

// import './assets/main.css'import { createApp } from 'vue'import App from './App.vue'//引入import Item from './components/Item.vue'import axios from 'axios'axios.defaults.baseURL = "http://localhost:8007"const app =createApp(App);//全局挂载axiosapp.config.globalProperties.$axios=axios//注入 (展示名,注入名)app.component("Item",Item)app.mount('#app');

CompnentLife.vue

<script>
import axios from 'axios'
export default{data(){return{dataInfo: []}},mounted(){console.log(this.$refs.life);axios({method:"get",url:"/OS/getOSInfo",// changeOrigin:true  允许跨域}).then(res=>{console.log(res.data)this.dataInfo=res.data;})}
}
</script>

可能遇到问题

Access to XMLHttpRequest at 'http://localhost:8007/OS/getOSInfo' from origin 'http://localhost:5173' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

解决办法1

后端加上@CrossOrigin 注解//表示都允许跨域访问

@CrossOrigin //表示都允许跨域访问

后端

package com.example.domain;
import lombok.Data;@Data
public class OsInfo {// cpu供应商private String cpuVendor;//  cpu名称private String cpuName;// CPU核心数private long cpuNum;// CPU总的使用率private String totalPercent;// CPU用户使用率private String usedPercent;// CPU当前等待率private String waitPercent;// CPU系统使用率private String sysPercent;//  CPU当前空闲率private String idlePercent;// 操作系统private String osName;// 系统架构private String osArch;// 服务器名称private String HostName;// 服务器IPprivate String HostAddress;// 项目路径private String userDir;// 操作系统信息private String sunDesktop;// jvm总内存private String totalMemory;// JVM空闲内存private String freeMemory;// Jvm已使用内存private String usedMemory;// JVM最大可用内存总数private String maxMemory;// jvm内存使用率private String useRate;// jvm内存空闲率private String freeRate;// Java版本private String jdkVersion;// jdk安装目录private String jdkHome;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTPS是什么意思

HTTPS全称为Hypertext Transfer Protocol over Secure Socket Layer&#xff0c;中文含义为“超文本传输协议在安全加密字层”&#xff0c;简单来说就是加密数据传输&#xff0c;通俗的说就是安全连接。 HTTPS安全超文本传输协议&#xff0c;它是一个安全通信通道&#xff0c;它…

SpringAMQP的使用

1. 简介&#xff1a; SpringAMQP是基于RabbitMQ封装的一套模板&#xff0c;并且还利用SpringBoot对其实现了自动装配&#xff0c;使用起来非常方便。 SpringAmqp的官方地址&#xff1a;https://spring.io/projects/spring-amqp SpringAMQP提供了三个功能&#xff1a; 自动声…

【linux】查看Debian应用程序图标对应的可执行命令

在Debian系统中&#xff0c;应用程序图标通常与.desktop文件关联。您可以通过查看.desktop文件来找到对应的可执行命令。这些文件通常位于/usr/share/applications/或~/.local/share/applications/目录下。这里是如何查找的步骤&#xff1a; 1. 打开文件管理器或终端。 2. 导…

20240115如何在线识别俄语字幕?

20240115如何在线识别俄语字幕&#xff1f; 2024/1/15 21:25 百度搜索&#xff1a;俄罗斯语 音频 在线识别 字幕 Bilibili&#xff1a;俄语AI字幕识别 音视频转文字 字幕小工具V1.2 BING&#xff1a;音视频转文字 字幕小工具V1.2 https://www.bilibili.com/video/BV1d34y1F7…

<Linux> 进程间通信

目录 前言&#xff1a; 一、进程间通信 &#xff08;一&#xff09;进程间通信目的 &#xff08;二&#xff09;进程通信的要求 &#xff08;三&#xff09;进程间通信分类 二、管道 &#xff08;一&#xff09;什么是管道 &#xff08;二&#xff09;基本原理 &#…

会声会影2024什么时间发布呢?会声会影2024会有那些新功能

近年来&#xff0c;随着科技的不断进步&#xff0c;各种软件的功能越来越强大&#xff0c;其中最为常用的莫过于视频编辑软件。而会声会影作为一款颇受欢迎的视频编辑软件&#xff0c;备受用户关注。那么&#xff0c;会声会影2024什么时间发布呢&#xff1f; 首先&#xff0c;我…

Java 使用 EasyExcel 爬取数据

一、爬取数据的基本思路 分析要爬取数据的来源 1. 查找数据来源&#xff1a;浏览器按 F12 或右键单击“检查”打开开发者工具查看数据获取时的请求地址 2. 查看接口信息&#xff1a;复制请求地址直接到浏览器地址栏输入看能不能取到数据 3. 推荐安装插件&#xff1a;FeHelper&a…

搭建知识付费小程序平台:如何避免被坑,选择最佳方案?

随着知识经济的兴起&#xff0c;知识付费已经成为一种趋势。越来越多的人开始将自己的知识和技能进行变现&#xff0c;而知识付费小程序平台则成为了一个重要的渠道。然而&#xff0c;市面上的知识付费小程序平台琳琅满目&#xff0c;其中不乏一些不良平台&#xff0c;让老实人…

高可用架构去中心化重要?

1 背景 在互联网高可用架构设计中&#xff0c;应该避免将所有的控制权都集中到一个中心服务&#xff0c;即便这个中心服务是多副本模式。 对某个中心服务&#xff08;组件&#xff09;的过渡强依赖&#xff0c;那等同于把命脉掌握在依赖方手里&#xff0c;依赖方的任何问题都可…

个性化定制的知识付费小程序,为用户提供个性化的知识服务

明理信息科技知识付费saas租户平台 随着知识经济的兴起&#xff0c;越来越多的人开始重视知识付费&#xff0c;并希望通过打造自己的知识付费平台来实现自己的知识变现。本文将介绍如何打造自己的知识付费平台&#xff0c;并从定位、内容制作、渠道推广、运营维护四个方面进行…

R语言【paleobioDB】——pbdb_taxa():获得多个类群名的基本信息

Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新&#xff0c;该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后&#xff0c;执行本地安装。 Usage pbdb_taxa (...) Arguments 参数【...】&#…

如何保证Kafka不丢失消息

丢失消息有 3 种不同的情况&#xff0c;针对每一种情况有不同的解决方案。 生产者丢失消息的情况消费者丢失消息的情况Kafka 弄丢了消息 生产者丢失消息的情况 生产者(Producer) 调用send方法发送消息之后&#xff0c;消息可能因为网络问题并没有发送过去。所以&#xff0c;我们…

RocketMq基础

转载&#xff1a;https://blog.csdn.net/SmallCat0912/article/details/128535930 可视化平台镜像 # 拉取镜像 docker pull rocketmqinc/rocketmq:4.3.2# 修改镜像名字 docker tag 【镜像id】 rocketmq:4.3.2可视化平台镜像: # 拉取镜像 docker pull styletang/rocketmq-cons…

@Controller层自定义注解拦截request请求校验

一、背景 笔者工作中遇到一个需求&#xff0c;需要开发一个注解&#xff0c;放在controller层的类或者方法上&#xff0c;用以校验请求参数中(不管是url还是body体内&#xff0c;都要检查&#xff0c;有token参数&#xff0c;且符合校验规则就放行)是否传了一个token的参数&am…

从车联网到智慧城市:智慧交通的革新之路

一、引言 1、智慧城市的概念和发展背景 智慧城市&#xff08;Smart City&#xff09;是指以信息技术为基础&#xff0c;运用信息与通信等手段&#xff0c;对城市各个核心系统各项关键数据进行感测、分析、整合和利用&#xff0c;实现对城市生活环境的感知、资源的调控&#x…

Linux下的HTTPS配置:从证书到安全连接

在当今的互联网环境中&#xff0c;数据传输的安全性越来越受到重视。HTTPS&#xff0c;作为HTTP的安全版本&#xff0c;通过使用SSL/TLS协议来加密数据传输&#xff0c;确保了数据在传输过程中的安全。在Linux环境下&#xff0c;配置HTTPS需要从证书的生成到服务器的配置进行一…

C++嵌入式编程:硬件控制与物联网

C是一种功能强大的编程语言&#xff0c;被广泛应用于嵌入式系统的开发和物联网&#xff08;IoT&#xff09;应用程序的编写。C具有高性能、灵活性以及强大的硬件控制能力&#xff0c;使其成为嵌入式编程和物联网开发的理想选择。在本文中&#xff0c;我们将讨论C在硬件控制和物…

SpringBoot教程(一)|认识Spring Boot

SpringBoot教程(一)|认识Spring Boot 安得广厦千万间&#xff0c;大庇天下寒士俱欢颜&#xff0c;风雨不动安如山&#xff0c;呜呼&#xff0c;何时眼前突兀见此屋&#xff0c;吾庐独破受冻死亦足! 1.1 初识SpringBoot Spring Boot是由Pivotal团队提供的全新框架&#xff0c;…

用 YAML 文件配置 CI/CD 管道

MSBuild 参数: 在使用 MSBuild 命令行生成打包项目(就像在 Visual Studio 中使用向导生成项目一样)之前,生成过程可以通过编辑 Package.appxmanifest 文件中 Package 元素的 Version 属性,来对生成的 MSIX 包进行版本控制。 在 Azure Pipelines 中,可以使用某个表达式来…

内网yum仓库 ftp;http方式

ftp方式 服务端 客户端 vim /etc/yum.repos.d/ftp.repo http方式 服务端 yum install httpd -y systemctl start httpd cd /var/www/html/ mkdir centos7 mount /dev/sr0 /var/www/html/centos7 客户端