Vue3 学习2

Vue3核心语法

watchEffect

  • 官网:立即运行一个函数,同时响应式地追踪其依赖,并在依赖更改时重新执行该函数。

  • watch对比watcheffect

    1.都能监听响应式数据地变化,不同的是监听数据变化的方式不同

    2.watch:要明确指出监视的数据

    3.watchEffect:不用明确指出监视的数据(函数中用到哪些属性,那就监视哪些属性)

    复制代码
      <template>
      	<div class="person">
      	<h2>需求:当水温达到60度,或水位达到80cm时,给服务器发请求	</h2>
      	<h2>当前水温:{{ temp }}℃</h2>
      	<h2>当前水位:{{ height }}cm</h2>
      	<button @click="changeTemp">水温+10</button>
      	<button @click="changeHeight">水位+10</button>
      	</div>
      </template>
    
      <script lang="ts" setup name="Person">
      	import {ref,watch, watchEffect}from 'vue'
      	//数据
      	let temp= ref(10)
      	let height = ref(0)
      	//方法
      	function changeTemp(){
      		temp.value +=10
      	}
      	function changeHeight(){
      		height.value +=10
      	}
    
      	//监视
      	 /* watch([temp,height],(value)=>{
      		//console.log(newValue,oldValue);
      		//从value中获取最新的水温(newTemp)、水位(newHeight)
      		let[newTemp,newHeight] = value
      	//逻辑
      	if(newTemp >=60 || newHeight >=80){
    		console.log('给服务器发请求');
      	}
      }) */
    
       //监视 watchEffect实现
      	watchEffect(()=>{
      		if(temp.value >=60 || temp.value >=80){
      		console.log('给服务器发请求');
      		}
      	})
      </script>

标签的ref属性

作用:用于注册模板引用

  • 用在普通DOM标签上,获取的是DOM节点。
  • 用在组件标签上,获取的是组件实例对象。

TS中的_接口_泛型_自定义

复制代码
	<template>
		<div class="person">
			???
		</div>
	</template>

	<script lang="ts" setup name="Person">
		import{type personInter,type Persons} from '@/types'
		//let person:personInter = {id:'asjcnjjanjb',name:'张三',age:60}

		let personList:Persons = [
			{id:'asjcnjjanjb',name:'张三',age:60},
			{id:'asjcnjjanjb',name:'李四',age:18},
			{id:'asjcnjjanjb',name:'王五',age:6}
		]
	</script>

props的使用

!!!重点理解

生命周期

组件的生命周期:

创建(created):创建前(beforeCreate),创建完毕

挂载(mounted):挂载前,挂载完毕

更新:更新前,更新完毕

销毁:销毁前,销毁完毕

生命周期、生命周期函数、生命周期钩子

复制代码
<script>

	export default {
	/* eslint-disable */
		name: 'Person',
	//数据
	data(){
	 return{
  		sum:1
	}
},
	//方法
	methods:{
		add(){
  		this.sum +=1
	}
},
 //创建前的钩子
	beforeCreate(){
	 console.log('创建前');

	},
//创建完毕的钩子
	created(){
		console.log('创建完毕');
	},
//挂载前
	beforeMount(){
		console.log('挂载前');
	},
//挂载完毕
	mounted(){
		console.log('挂载完毕');
	},
//更新前
	beforeUpdate(){
		console.log('更新前');
	},
//更新完毕
	updated(){
		console.log('更新完毕');
	},
//销毁前
	beforeDestroy(){
		console.log('销毁前');
	},
//销毁完毕
	destroyed(){
		console.log('销毁完毕');
	}
}

</script>
  • 概念:vue组件实例在创建时要经历一系列初始化步骤,在此过程中vue会在合适的时机,调用特定的函数,从而让开发者有机会在特定阶段运行自己的代码,这些特定的函数统称为:生命周期钩子

  • 规律:创建、挂载、更新、销毁每个阶段有两个钩子,一前一后

  • vue2的生命周期

  • vue3的生命周期:

    复制代码
      <script lang="ts" setup name="Person">
      	import {ref,onBeforeMount,onMounted, onUpdated,onBeforeUpdate,onBeforeUnmount,onUnmounted} from 'vue'
    
         //数据
      	let sum = ref(0)
      	//方法
      	function add(){
      		sum.value +=1
      	}
      	//创建
      	console.log('创建');
    
      	 //挂载前
      	onBeforeMount(()=>{
      		console.log('挂在载前');
      	})
      	//挂载完毕
      	onMounted(()=>{
      		console.log('子--挂载完毕');
      	})
       //更新前
      	onBeforeUpdate(()=>{
      		console.log('更新前');
      	})
      //更新完毕
      	onUpdated(()=>{
      		console.log('更新完毕');
      	})
      //卸载前
      	onBeforeUnmount(()=>{
      		console.log('卸载前');
      	})
      //卸载完毕
      	onUnmounted(()=>{
      		console.log('卸载完毕');
      	})
      </script>

Hooks



相关推荐
用户114818678948420 小时前
Git Stash 丢失后的完整找回指南
前端·git
代码不加糖20 小时前
2026 React 面试“通关秘籍”:高频 12 问 + 深度解析(含Hooks源码思想)
前端·react.js·面试
我滴老baby20 小时前
ReAct推理模式详解让智能体学会边思考边行动
前端·react.js·前端框架
枳实-叶20 小时前
【Linux驱动开发】第一天:用户态与内核态通俗讲解+最简字符设备驱动实战
linux·驱动开发·学习
ADHD多动联盟20 小时前
专注力障碍是什么?主要有哪几点影响孩子的学习与社交能力?
学习·学习方法·玩游戏
菜鸟小码20 小时前
MapReduce 核心阶段深度解析:Map 阶段与 Reduce 阶段的作用及执行流程
前端·javascript·mapreduce
步步为营DotNet20 小时前
深入剖析.NET 11 中 Semantic Kernel 于智能后端集成的创新实践
前端·.net·easyui
知识分享小能手20 小时前
R语言入门学习教程,从入门到精通,R语言网格绘图系统(ggplot2)- 完整知识点与案例代码(3)
开发语言·学习·r语言
@大迁世界20 小时前
33.如何在 React 中使用内联样式(inline styles)?
前端·javascript·react.js·前端框架·ecmascript
CodeSheep20 小时前
DeepSeek的最新招人标准,太讽刺了。
前端·后端·程序员