Vue基础教程(114)组件和组合API之使用prop向子组件传递数据之prop验证:Vue组件数据投喂指南:给你的Prop加上“霸道保安”

Vue Prop验证实战指南

好的,朋友们!今天咱们不聊风花雪月,来聊聊Vue世界里一件至关重要的大事——给组件“投喂”数据时,如何先做个“安检”

想象一下,你写了个超帅的按钮组件,期待别人传个String类型的color,结果隔壁老王传了个Array进来,你的按钮当场“花容失色”,页面直接“扑街”。这能忍?

所以,Vue给我们准备了一个神器:Prop验证。它就像是组件门口的“霸道保安”,数据想进门?先亮明身份,验明正身!


第一章:从前,有个不设防的组件…

咱们先来个“事故现场还原”。你写了一个UserCard组件,指望父组件给它传个用户信息。

<!-- 子组件:UserCard.vue -->
<template>
  <div class="user-card">
    <h2>欢迎,{
  
  { name }}!</h2>
    <p>年龄:{
  
  { age }}</p>
  </div>
</template>
<script>
export default {
  props: ['name', 'age']
}
</script>

父组件是这么用的:

<!-- 父组件 -->
<template>
  <UserCard name="张三" :age="25" />
</template>

完美!页面显示:“欢迎,张三!年龄:25”。你觉得自己真是个天才。

但好景不长,你的同事(或者一个月后的你自己)是这么用的:

<!-- 父组件的作死用法 -->
<template>
  <UserCard :name="123" :age="'二十五'" />
</template>

页面瞬间裂开:显示“欢迎,123!年龄:二十五”。数字当名字,字符串当年龄?虽然没报错,但逻辑全乱套了!数据库查询可能失败,计算可能出NaN,整个应用的行为变得不可预测。

你看,没有验证的Prop,就像没有保安的小区,谁都能进,指不定进来个什么玩意儿。

第二章:保安上岗!基础Prop验证

是时候请出我们的“保安”——Prop验证了。改造一下UserCard.vue

<!-- UserCard.vue 升级版 -->
<template>
  <div class="user-card">
    <h2>欢迎,{
  
  { name }}!</h2>
    <p>年龄:{
  
  { age }}</p>
  </div&
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值