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

vue3的props的使用

在vue中,props常用来父子组件的传值,但是Vue3与Vue2在写法上是有较大的出入

Vue2中

//父组件<template><div class="father"><child :person='person' /></div>
</template><script>import child from './child'export default {components:{child},data(){return {person:[{ name:'张三',age:18}]}}}
</script>//子组件<template><div class="child"></div>
</template><script>export default {props:{person:{type:Array,default:()=>[]}},data(){return {}},methods:{showData(){console.log(this.person)}}}
</script>

Vue3

//父组件<template><child :person='personList' />
</template><script setup>import child from './child.vue'import { reactive } from 'vue'import { type Persons } from '@/type'  //用上上篇文章说到的泛型限制let personList = reavtive<Persons>([{ id:'101',name:'张三',age:18 },{ id:'102',name:'李四',age:20 },])
</script>//子组件<template><div class="child"> </div>
</template><script setup>import { defineProps } from 'vue'  //vue3需要使用defineProps来接收参数//只接收参数defineProps(['person'])  //在此只能用于渲染html,而无法在后续的操作中对其数据//进行逻辑操作//如果父组件传递的参数不止一个的话,那么子组件 defineProps(['person','other','...'])//接收数据并储存起来let personList = defineProps(['person'])  //此时的personList是一个对象// { person:[{},{} ] }
</script>

在子组件中是可以对父组件传递的值进行限制,不能随便传也不能随便改

//子组件<template><div class="child"> </div>
</template><script setup>import { defineProps } from 'vue'  //vue3需要使用defineProps来接收参数import { type Presons } from 'vue'  //引入泛型限制//只接收persondefineProps(['person'])//接收person + 限制类型defineProps<{person:Presons}>()//接收person + 限制类型 + 限制必要性defineProps<{person:Presons}>()  //在父组件中person必须传递给子组件defineProps<{person?:Presons}>()  //可有可无//接收person + 限制类型 + 限制必要性 + 指定默认值//指定默认值的话需要引入 withDefaultsimport { withDefaults } from 'vue'withDefaults(defineProps<{person?:Presons}>(),{person:()=>[{ id:'101',name:'张三',age:18 }]})</script>

在Vue3中以define开头的工具函数一般是宏函数,在页面中基本上是不用引入的

http://www.dtcms.com/a/524602.html

相关文章:

  • 【Trae+AI】和Trae学习搭建App_03:后端API开发原理与实践(已了解相关知识的可跳过)
  • List of Keys (Keyboard,Mouse and Controller)
  • 门户网站怎样做wordpress清新模板
  • 沈阳有资质做网站的公司公司自有网站工信备案
  • 园林设计公司网站昆山网站建设网站
  • 【Linux】systemd 服务管理详解
  • Python哪个Excel库最好用?
  • 瓦力机器人-编码电机控制(基于树莓派5)
  • dw做网站怎么上线大良用户网站建设
  • Node.js 进阶:掌握高性能服务器开发的核心技术
  • Elasticsearch 的 SQL 与 DSL 转换
  • 快速做网站的软件腾讯企业邮箱电脑版登录入口
  • API测试工具进化:从Postman到Apipost的全局参数管理革命
  • 数据结构——排序的超级详解(Java版)
  • C# 加密解密字符方法Cryptography
  • 教做详情页的网站关键词优化公司电话
  • 中企动力科技股份有限公司网站梵克雅宝官网官方网
  • 自己电脑做电影网站中国建设教育协会培训中心
  • 第三章、React项目国际化介绍(`react-i18next`)
  • RHCA - DO374 | Day03:通过自动化控制器运行剧本
  • 深圳微商城网站建设温州 网站开发
  • 何谓RSS
  • 【SpringCloud】Eureka
  • 网站后台尺寸一般做多大的如何把优酷视频放到网站上
  • 帝国建站模板淘宝网络营销案例分析
  • 企业选择内容+人工智能供应商应该考虑什么?​
  • CI/CD(一)—— 从零搭建 GitLab 全流程(Docker 部署 + 实战指南)
  • 【Android】 Gradle 下载后本地使用方式(macOS / Windows通用)
  • 华为od面经-23届-Java面经
  • Kubernetes LoadBalancer系列|MetalLB介绍与配置