首页 > 其他分享 >Vue3中的defineProps方法

Vue3中的defineProps方法

时间:2023-08-10 14:46:23浏览次数:35  
标签:vue 方法 Vue3 props 组件 import type defineProps

1.什么是defineProps

defineProps是Vue3中的一种新的组件数据传递方式,可以用于在子组件中定义接收哪些父组件的props。当父组件的props发生变化时,子组件也会随之响应。

2.如何使用defineProps?

在子组件中可以使用defineProps声明该组件需要接收的props,它需要传递一个包含props字段的对象,每个字段表示该props的默认值和类型等信息,示例如下:

import { defineComponent, defineProps } from 'vue'

const ChildComponent = defineComponent({
  props: defineProps({
    message: {
      type: String,
      default: ''
    },
    count: {
      type: Number,
      default: 0
    }
  }),
  template: `
    <div>
      <p>Message: {{ message }}</p>
      <p>Count: {{ count }}</p>
    </div>
  `
})

在父组件中,只需要通过props的方式向子组件传递对应的属性即可,如下:

<template>
  <div>
    <ChildComponent message="Hello, Vue3!" :count="10" />
  </div>
</template>

3.props类型

defineProps支持的主要类型有:

  • String
  • Number
  • Boolean
  • Object
  • Array
  • Function

同时也支持许多高级类型,比如,枚举类型,对象类型,联合类型等等。

    import { defineProps } from 'vue'

    const props = defineProps({
      type:{
        type: String,
        validator: (value) => {
          return ['success', 'warning', 'danger', 'info'].includes(value)
        }
      },
      
      data:{
        type: [Array, Object],
        default: () => {
          return { name: 'jack', age: 20 }
        }
      }
    })

4.props的验证

我们可以对props进行验证,确保传入的值符合我们期望的值。

  • type:定义数据的类型
  • required:是否必须
  • default:默认值
  • validator:自定义验证
    import { defineProps } from 'vue'

    const props = defineProps({
      count: {
        type: Number,
        required: true,
        default: 0,
        validator: (value) => {
          return value >= 0 && value <= 10
        }
      }
    })

5.props的命名风格

在Vue3中,props的命名风格默认采用驼峰命名风格(CamelCase)。但,如果组件props传入的命名是kebab-case风格时,我们可以通过配置globalProperties实现自动转换。

    import { createApp } from 'vue'
    import App from './App.vue'
    
    const app = createApp(App)

    app.config.globalProperties.$options = {
    // 将组件的 props 的 kebab-case 转换为 camelCase
    // 例如 `some-prop` 将被转换为 `someProp`.
      convertProps: true
    }
    
    app.mount('#app')

6.总结

defineProps方法是Vue3的一个新特性,在组件化开发时可以方便的定义props并进行类型检查,以确保数据流的正确性和可靠性,同时也可以对props进行验证,确保传入的值符合我们期望的值。同时,在命名风格上也有很大的灵活性,可以通过配置实现不同风格的转换。

 

参考---https://www.python100.com/html/YX519T8WHX57.html

参考---https://pythonjishu.com/kpcskqehplrtklq/

标签:vue,方法,Vue3,props,组件,import,type,defineProps
From: https://www.cnblogs.com/pwindy/p/17620263.html

相关文章

  • 架设传奇私服进游戏不开门或进入黑屏解决方法
    进入游戏的时候屏幕变黑而无法正常进入游戏,相信不少人已经遇到这样的问题了.原因是因为你在启动服务器的时候输入IP错误或在关闭服务器的时候系统蓝屏.导致服务器记录IP的.TXT和.INI文件内的IP记录错误.由于可能是系统的漏洞,导致下次进入时即使输入正常IP而不能正确修改上面两中......
  • C/C++开发者必备 如何获取系统环境变量的方法
    获取系统环境变量在C/C++中是一项简单的任务。下面展示了一个纯C语言实现的方法。```c#include<stdio.h>#include<stdlib.h>intmain(void){char*pathVar;pathVar=getenv("PATH");printf("pathVar=%s",pathVar);return0;}```需要注意的是,`getenv()`函数定义......
  • win10蓝屏0x000000ed 0x0000003B 0x000000d1 0x00000050 bad pool header critical pr
    第一:硬件问题也可能是硬盘数据线或电源线接触不良或与硬盘的规格不符等原因引起的。你检查一下你的硬盘有没有接好,有没有松了,重新接一下,还有最近有没有添加新硬件啊,可能是硬件兼容性不足。把内存条拔下来,擦干净金手指,重新插好,重启电脑看看第二:软件问题此种情况一般是由于磁盘存在错......
  • find,findIndex方法
    find()方法:数组中每个元素都调用一次函数中执行,通过判断返回符合条件的对象,没找到返回undefined;findIndex()方法:数组实例的findIndex方法找出第一个符合条件元素的位置,没找到返回-1;find://1.找出数组中id=50的元素letarr=[{id:10,name:'狼了个狼'},{id:20,name:'......
  • 聚焦Web前端安全:最新揭秘漏洞防御方法
    在Web安全中,服务端一直扮演着十分重要的角色。然而前端的问题也不容小觑,它也会导致信息泄露等诸如此类的问题。在这篇文章中,我们将向读者介绍如何防范Web前端中的各种漏洞。【万字长文,请先收藏再阅读】首先,我们需要了解安全防御产品已经为我们做了哪些工作。其次,我们将探讨前端......
  • 使用在线Excel时,有哪些方法可以引入计算函数?
    摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言在日常生活和工作中,我们都会或多或少的使用Excel中的计算公式函数,比如求和公式、平均数公式等。今天为大家整理了一些在线Excel中可......
  • 三种常见的平滑滤波方法
    一、概述  平滑滤波,顾名思义就是对信号进行处理使之整体显得更加平滑,降低噪声影响,提高信号质量,它常见于数学信号处理和图像处理,一般意义上的数字信号多体现于一维数据,图像信号多体现于二维数据。  均值滤波、中值滤波、高斯滤波是三种常见的平滑滤波方法,其中均值滤波和高斯......
  • iPhone上使用Charles 抓包的配置方法与问题解决方式
    我是在Macos下配置的,其它平台的内容和步骤也差不多。配置方法:(网上很多,大致说下)一、Charles下载:1)官网下载地址:https://www.charlesproxy.com/download/  二、Charles配置代理:1)查看本机IP:help-->LocalIPAddress   2)查看或者设置访问端口:Proxy->ProxySettings三、配置ios手......
  • 目标检测mAP计算方法-简单易懂
    本次将整理一份map计算方法,主要分为三部分,第一部分简单了解原理,第二部分理解如何调用coco等相关库得到map,第三部分教会读者如何结合模型(任何可计算map的网络模型)调用而生成map,而本博客希望读者能掌握使用模型预测map,其重点也为第三部分: 第一部分介绍map原理,主要引用部分他人结......
  • 关闭任务计划程序前您必须关闭所有会话框的解决方法
    关闭任务计划程序前您必须关闭所有会话框的解决方法问题描述创建计划任务后关闭窗口时弹出来的,把所有窗口都关了,还是一样弹出提示。解决方案提示关闭任务计划程序前,您必须关闭所有会话框,是设置错误造成的,解决方法如下:方案一 可以用任务管理器,在应用程序中选择该程序,然后在......