当前位置: 首页 > news >正文

vue3 Props的使用

Props是什么?

官方地址:Props | Vue.js

在 Vue 中,props 是父组件向子组件传递数据的一种机制。

props 是子组件中定义的自定义属性,父组件通过这些属性向子组件传递数据。

它们是单向数据流的一部分,意味着数据只能从父组件流向子组件,而不能反过来。

定义props

在子组件中,可以通过 props 选项来定义接收的属性。props 可以是数组或对象形式。

子组件 child.vue

在使用 <script setup> 的单文件组件中,props 可以使用 defineProps() 宏来声明:

<script setup>
const props = defineProps(['foo'])
​
console.log(props.foo)
</script>

除了使用字符串数组来声明 props 外,还可以使用对象的形式:

<script setup>
const props = defineProps({
  title: String,
  likes: Number
})
​
console.log(props.foo)
</script>

对于以对象形式声明的每个属性,key 是 prop 的名称,而值则是该 prop 预期类型的构造函数。比如,如果要求一个 prop 的值是 number 类型,则可使用 Number 构造函数作为其声明的值。

对象形式的 props 声明不仅可以一定程度上作为组件的文档,而且如果其他开发者在使用你的组件时传递了错误的类型,也会在浏览器控制台中抛出警告。

监听props 自定义属性

child.vue 子组件

<script setup>
import { ref } from 'vue'
import { watchEffect,watch } from 'vue'
​
//自定义属性
const props = defineProps(['name','age']);
​
​
//监听自定义属性
watch(() => props.name,(newVal,oldVal) => {
    console.log("----监听name---- newVal:" + newVal,"oldVal:" + oldVal);
})
watch(() => props.age,(newVal,oldVal) => {
    console.log("----监听age---- newVal:" + newVal,"oldVal:" + oldVal);
})
​
​
</script>
http://www.dtcms.com/a/34419.html

相关文章:

  • 1-19 .gitignore的作用
  • PAT 甲级 1091 Acute Stroke
  • 网络安全监测探针安装位置 网络安全监测系统
  • ZLMediaKi集群设置
  • Python部署工控安全风险评估系统
  • 字节火山引擎 DeepSeek 接入本地使用
  • mongodb的并发优化
  • 网络安全风险事件排名 网络安全事件划分
  • MobaXterm_Portable_v23.2 免费下载与使用教程(附安卓替代方案)
  • 模型思维 - 领域模型的应用与解析
  • 8.日常英语笔记
  • 【每日八股】MySQL篇(二):事务
  • 文档检索服务平台
  • 23贪心算法
  • 【蓝桥杯单片机】客观题
  • 如何在 macOS 上配置 MySQL 环境变量
  • 【ROS2】第三方库学习:Eigen(线性代数:矩阵、向量)
  • 接雨水的算法
  • Linux nc 命令详解
  • Android Studio2024版本安装环境SDK、Gradle配置
  • 《Linux命令行和shell脚本编程大全》第一章阅读笔记
  • 【YOLOv8】YOLOv8改进系列(2)----替换主干网络之FasterNet(CVPR 2023)
  • Unity VRoid+Blender+Unity 3D人物模型导入使用
  • 【Vue3+Tres 三维开发】03 - 基本操作
  • 二分图检测算法以及最大匹配算法(C++)
  • eclipse 运行工程报错in thread “main“ java.lang.OutOfMemoryError: Java heap space
  • BeautifulSoup、lxml/XPath和正则表达式在数据爬取中的核心差异及适用场景
  • 如何在java中用httpclient实现rpc get请求
  • Faster-RCNN与DETR:遥感影像目标检测的对比与选择
  • IDEA通过Maven使用JBLJavaToWeb插件创建Web项目