(二十四)Vue之props配置项

news2024/11/26 0:38:00

文章目录

  • props
  • 基本使用
    • props的数组形式
    • props的对象形式
    • 检测类型
    • 检测类型 + 其他验证

Vue学习目录

上一篇:(二十三)Vue之ref属性

props

props 可以是数组或对象,用于让组件接收外部传过来的数据
约定props是只读的,Vue底层会监测你对props的修改,如果进行了修改,就会发出警告,若业务需求确实需要修改,那么可以复制props的内容到data中一份,然后去修改data中的数据。

因为props的值由外部提供,根据单一职责和开闭原则,对于组件本身而言,不应该对props的值做修改的动作,以确保props的数据流单一性和可控性。如果组件也对props进行修改,那么就会打破数据流的单一性,因为从组件来看没法确保这个值的生产过程是一致的,从而引入混乱,进而导致组件可能会变得很难维护,所以不建议组件本身去修改props,而是只读取props的值就好。

基本使用

父组件:使用在组件标签里使用 属性名="属性值"传递数据
子组件:使用props配置项进行接收

props的数组形式

数组里使用字符串类型的属性名进行接收
父组件:

    <Student name="张三" age="18" sex="男"/>
    <hr>
    <Student name="李四" age="20" sex="男"/>
    <hr>
    <Student name="小米" age="22" sex="女"/>
    <hr>

子组件:

    <h2>学生姓名:{{name}}</h2>
    <h2>学生性别:{{sex}}</h2>
    <h2>学生年龄:{{age}}</h2>
	props:['name','sex','age']

效果:
在这里插入图片描述

props的对象形式

检测类型

props:{
      name:String,
      age:Number,
      sex:String
    }

当然,要传值的时候是数字类型,要使用v-bind的形式

    <Student name="张三" :age="20" sex="男"/>
    <hr>
    <Student name="李四" :age="20" sex="男"/>
    <hr>
    <Student name="小米" :age="18" sex="女"/>
    <hr>

效果:
在这里插入图片描述

检测类型 + 其他验证

要求props里的属性名配置是一个对象类型
验证包括:

  • default:值是any
    为该 prop 指定一个默认值。如果该 prop 没有被传入,则换做用这个值。对象或数组的默认值必须从一个工厂函数返回。
  • required:值是Boolean
    定义该 prop 是否是必填项。在非生产环境中,如果这个值为 truthy 且该 prop 没有被传入的,则一个控制台警告将会被抛出。
  • validator:值是Function,会收到一个值,这个值是传过来的值
    自定义验证函数会将该 prop 的值作为唯一的参数代入。在非生产环境下,如果该函数返回一个 false 的值 (也就是验证失败),一个控制台警告将会被抛出。
    子组件:
props:{
      name:{
        type:String,//类型
        required:true//必要的
      },
      age:{
        type:Number,
        default:99,//默认值
        validator(value) {
          return value >= 0
        }
      },
      sex:{
        type:String,
        required: true
      }
    },

如果传值是正常:

    <Student name="张三" :age="20" sex="男"/>
    <hr>
    <Student name="李四" :age="20" sex="男"/>
    <hr>
    <Student name="小米" :age="18" sex="女"/>
    <hr>

效果:正常显示
在这里插入图片描述
如果不传age值:

    <Student name="张三" sex="男"/>
    <hr>
    <Student name="李四" sex="男"/>
    <hr>
    <Student name="小米" sex="女"/>
    <hr>

效果:使用默认值
在这里插入图片描述
如果不传name

    <Student :age="20" sex="男"/>
    <hr>
    <Student :age="20" sex="男"/>
    <hr>
    <Student :age="18" sex="女"/>
    <hr>

效果:name不显示,并且控制台报错
在这里插入图片描述

如果age传值是一个负数

    <Student name="张三" :age="20" sex="男"/>
    <hr>
    <Student name="李四" :age="20" sex="男"/>
    <hr>
    <Student name="小米" :age="-1" sex="女"/>
    <hr>

效果:能正常显示,但是控制台报错
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/116072.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开源 高性能 云原生!时序数据库 TDengine 上线亚马逊Marketplace

近日&#xff0c;涛思数据旗下开源、高性能、云原生的时序数据库&#xff08;Time Series Database&#xff0c;TSDB&#xff09;TDengine 成功上线亚马逊云科技 Marketplace&#xff0c;为用户提供了更加丰富的订阅渠道。 TDengine 是针对时序数据特点研发和优化的数据库解决方…

CentOS8 Elasticsearch8.x 安装遇到的问题解决汇总

报错清单 启动报错&#xff1a;ERROR: Elasticsearch exited unexpectedly curl测试报错&#xff1a;curl: (52) Empty reply from server 报错解决 启动报错 起因 使用archive方式安装elasticsearch后&#xff0c;在目录中运行./bin/elasticsearch报错如下&#xff1a; 原…

第二十七章 数论——快速幂与逆元

第二十七章 快速幂与扩展欧几里德算法一、快速幂1、使用场景2、算法思路&#xff08;1&#xff09;二进制优化思想&#xff08;2&#xff09;模运算法则3、代码实现&#xff08;1&#xff09;问题&#xff08;2&#xff09;代码二、快速幂求逆元1、什么是逆元&#xff1f;&…

结构体位段问题

每一位勇敢努力的少年&#xff0c;必将不负众望&#xff01; 什么是位段 位段的详细解释 位段其实也是一种结构体的类型 1.位段的成员是 int ,short int unsigned int , signed int , short , char 类型 2.位段的成员名后有一个冒号和一个数字 看一个例子&#xff1a; st…

通过静态LSP、LDP LSP、MPLS TE三种方式实现总部与分支的互通

一、静态LSP 特点&#xff1a;类似静态路由&#xff0c;简单易用&#xff0c;手动建立lsp&#xff0c;定制转发路径&#xff0c;无需控制报文&#xff0c;资源消耗少。 缺点&#xff1a;不适合大型复杂拓扑&#xff0c;不能根据网络变化而动态调整&#xff0c;需要管理员手动调…

【jprofiler应用-oom原因定位】

1.安装jprofiler jprofiler_windows-x64_11_0_2.exe 2.使用KeyGen.exe生成注册码然后输入 3.idea中安装jprofiler插件 File-->Setting-->Plugins 搜索jprofiler插件然后安装 4.以一个内存溢出的程序为例子进行分析(一直分配内存&#xff0c;List容器引用着Student导致…

医疗产品设计的新趋势

随着个人健康和医疗数据技术的发展&#xff0c;消费者可以选择更多的方法来跟踪和管理他们的健康状况&#xff0c;因此医疗产品开始转向更多的健康预防领域。医疗器械设计公司认为&#xff0c;随着医疗产品设计从医疗产品转向家庭&#xff0c;医疗产品的设计需要考虑更多的新问…

【HTML+CSS+JavaScript】实现简单网页版的飞机大战

文章目录【HTMLCSSJavaScript】实现简单网页版的飞机大战一. HTML部分代码二. CSS部分代码三. JavaScript部分代码四. 完整的代码和图片获取【HTMLCSSJavaScript】实现简单网页版的飞机大战 本文分享的是键盘版飞机大战的代码&#xff0c;且文章末尾有惊喜。 效果图&#xff1a…

前端食堂技术周刊第 64 期:Node.js 19、Interop 2022、SvelteKit 1.0、2022 Web 性能回顾、最流行的 Node.js

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;冰糖雪梨 食堂技术周刊仓库地址&#xff1a;https://github.com/Geekhyt/weekly 本期摘要 Node.js 19 的新特性Interop 2022 年终更新SvelteKit 1.02022 Web 性能回…

Python爬虫学习第十二天---scrapy学习

Python爬虫学习第十二天—scrapy学习 一、scrapy的概念和流程 1、scrapy概念 Scrapy是一个Python编写的开源网络爬虫框架&#xff0c;它是一个被设计用于爬取网络数据、提取结构性数据的框架。Scrapy文档地址&#xff1a;http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/…

采用抓包的方式逆向获得谷歌翻译的API

文章目录最开始的尝试2022.12.26谷歌翻译API相关信息发送网址提交的数据不过不出意外的失败了实验去掉参数去掉Headers代码对返回结果进行解析完整代码最开始的尝试 谷歌的翻译API老是发生变化&#xff0c;我们需要自己动手来找到谷歌的翻译API&#xff0c;这样才是最稳妥的解决…

个人博客系统(前后端分离)

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录一、项目简介二、项目效果三、项目实现1. 软件开发的基本流程2. 博客系统 需求分析3. 博客系统 概要设计4. 创建maven项目5. 编写数据库操作的代码四、项目代码总结普通小孩也要热爱生活&#xff01; 一、项目简介 …

Mac 音频转换器推荐 DRmare Audio Converter、Audi Free Auditor

Mac 音频转换器推荐 DRmare Audio Converter、Audi Free Auditor 给大家推荐两款 Mac 上的音频转换器&#xff0c;这两款转换器都可以转换苹果音乐&#xff0c;iTunes歌曲或者一些常规的音轨到MP3, FLAC, WAV, M4A, AAC格式等等&#xff0c;转换后我们就可以在所有的设备和播放…

stm32f407VET6 系统学习 day06 窗口看门狗, IIC 通信协议

1.独立看门狗&#xff0c;与窗口看门狗的差别 1. 差别1 &#xff1a; 窗口看门狗&#xff0c; 有上限 0x7F&#xff0c; 有下限 0x40 &#xff0c;&#xff0c; 独立看门狗只有下限 0 2. 差别2&#xff1a; 时钟源不同&#xff0c; 独立看门狗&#xff1a;LSI 窗口…

【iMessage苹果推群发】苹果相册推它由pushchatkey.pem和pushchatcert.pem作为单独的文件使用

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

cut与分层抽样

个人觉得&#xff0c; 把分层抽样称为“分类采样”会更贴切一些。通常最基本的采样手段是&#xff1a;随机抽样&#xff0c;但是在很多场景下&#xff0c;随机抽样是有问题的&#xff0c;举一个简单的例子&#xff1a;如果现在要发起一个啤酒品牌知名度的调查问卷&#xff0c;我…

Improved Unsupervised Lexical Simplification with Pretrained Encoders 论文精读

Improved Unsupervised Lexical Simplification with Pretrained Encoders 论文精读InformationAbstract1 Introduction2 System Description2.1 Simplification Candidate Generation2.2 Substitution Ranking2.3 Obtaining Equivalence Scores3 End-to-end System Performanc…

好书推荐《C++17 in Detail》

无意中发现作者的博客&#xff08;https://www.cppstories.com/&#xff09;和这本书。这本书算是对C17新增特性较为全面的介绍&#xff0c;而且从实战出发&#xff0c;不流于语法细枝末节&#xff0c;简洁清晰&#xff0c;可以作为Scott Meyers那本非著名的《Effective Modern…

2022环境电器年度行业分析报告:洗地机同比增长357%,扫地机器人销量197万+

在当前的大环境下&#xff0c;人们的消费观念不断变化&#xff0c;健康因素在购买决策中的比重逐渐增大&#xff0c;因此&#xff0c;与此挂钩的环境电器行业也迎来发展变化。 在这里&#xff0c;鲸参谋也综合了京东平台环境电器中一些重点类目的销售数据&#xff0c;主要包括吸…

Krita像素画教程

Krita Windows 上一款自由开源的绘画软件 Krita 是一款自由开源的免费绘画软件&#xff0c;使用 GPL 许可证发布。它的功能齐全&#xff0c;能胜任从起草、勾线、上色到最终调整的所有绘画流程&#xff0c;可以绘制概念草图、插画、漫画、动画、接景和 3D 贴图&#xff0c;支持…