Vue2:通过props给组件传数据

一、业务场景

我们在使用Vue组件时,常常会复用Vue组件,那么,问题来了,复用的时候,业务数据不相同,怎么办了?
这里我们就需要学习新的属性:props来实现这个功能。
这样,组件就类似于一个函数一样,可以接收参数值了。

二、props给组件传数据

1、给组件传入参数值

<!--        这里用v-bind简写,实现传递数值功能。因为vue指令,接收的是js表达式-->
        <Student  name="李四" sex="" :age="18"/>

2、组件接收参数值

方式一:

        //简单声明接收
        props:['name','age','sex']

方式二:

        //接收的同时对数据进行类型限制
         props:{
            name:String,
            age:Number,
            sex:String
        }

方式三:

        //接收的同时对数据:进行类型限制+默认值的指定+必要性的限制
        props:{
            name:{
                type:String, //name的类型是字符串
                required:true, //name是必传非空的
            },
            age:{
                type:Number,
                default:99 //默认值
            },
            sex:{
                type:String,
                required:true
            }
        }

三、修改props接收的数据

在这里插入图片描述
如上图所示,props接收到的数据,不在_data中,所以,无法直接修改。
简写代码:

<h2>学生年龄:{{myAge}}</h2>
<script>
        data() {
            console.log(this);
            return {
                msg:'我是Vue的学生',
                myAge:this.age
            }
        }
        
        methods: {
            updateAge(){
                this.myAge++
            }
        }
</script>

四、总结

  1. 功能:让组件接收外部传过来的数据
  2. 传递数据:<Demo name="xxx"/>
  3. 接收数据:
    1. 第一种方式(只接收):props:['name']
    2. 第二种方式(限制类型):props:{name:String}
    3. 第三种方式(限制类型、限制必要性、指定默认值):
        props:{
        	name:{
        	type:String, //类型
        	required:true, //必要性
        	default:'老王' //默认值
        	}
        }

备注:props是只读的,Vue底层会监测你对props的修改,如果进行了修改,就会发出警告,若业务需求确实需要修改,那么请复制props的内容到data中一份,然后去修改data中的数据。

如果data块中的属性名和props中的属性名重名,则以props中收到的值为准,因为props的加载优先级高于data块

五、完整代码

<template>
    <div>
        <h1>{{msg}}</h1>
        <h2>学生姓名:{{name}}</h2>
        <h2>学生性别:{{sex}}</h2>
        <h2>学生年龄:{{myAge}}</h2>
        <button @click="updateAge">尝试修改收到的年龄</button>
    </div>
</template>

<script>
    export default {
        name: "Student",
        data() {
            console.log(this);
            return {
                msg:'我是Vue的学生',
                myAge:this.age
            }
        },
        //简单声明接收
        // props:['name','age','sex']

        //接收的同时对数据进行类型限制
/*         props:{
            name:String,
            age:Number,
            sex:String
        }*/

        //接收的同时对数据:进行类型限制+默认值的指定+必要性的限制
        props:{
            name:{
                type:String, //name的类型是字符串
                required:true, //name是必传非空的
            },
            age:{
                type:Number,
                default:99 //默认值
            },
            sex:{
                type:String,
                required:true
            }
        },
        methods: {
            updateAge(){
                this.myAge++
            }
        }
    }
</script>

<style scoped>
    .school{
        background-color: gray;
    }
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录day23 二叉岁终章

669. 修剪二叉搜索树 题目 给定一个二叉搜索树&#xff0c;同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[L, R]中 (R>L) 。你可能需要改变树的根节点&#xff0c;所以结果应当返回修剪好的二叉搜索树的新的根节点。 思考 这题有个…

ComfyUI报错AttributeError: module ‘cv2.gapi.wip.draw‘ has no attribute ‘Text‘

ComfyUI在安装comfyui-reactor-node插件,然后启动之后突然报错: AttributeError: module cv2.gapi.wip.draw has no attribute Text 这是怎么回事呢? 于是四处搜寻答案。 总之就是opencv-python版本的问题导致的。 我将有可能解决办法的方法进行了总结。 下面列出所有解…

数字人源码部署新机遇,预测2024年AI应用将出现爆发式增长

近日&#xff0c;钉钉联合IDC发布《2024 AIGC应用层十大趋势白皮书》&#xff0c;其中&#xff0c;IDC预测到&#xff0c;2024年AI应用将出现爆发式增长&#xff0c;到2024年全球将涌现出超过5亿个新应用&#xff0c;到2026年&#xff0c;2/3的云应用将使用AI。 看来&#xff…

selenium如何使用隧道代理请求目标地址?

使用Selenium结合隧道代理IP可以通过以下步骤实现&#xff1a; 获取代理IP&#xff1a; 首先&#xff0c;你需要获得一个可用的隧道代理IP。你可以使用代理服务提供商&#xff08;巨量IP平台提供免费隧道代理测试&#xff09; 安装Selenium&#xff1a; 如果你还没有安装Selen…

基于CNC车间的复合机器人柔性上下料系统改造方案

在制造业中&#xff0c;CNC车间一直面临着提高生产效率、降低人工成本和提升柔性生产能力的挑战。针对这些行业痛点&#xff0c;富唯智能为您提供一种创新的解决方案&#xff1a;复合机器人柔性上下料系统。本方案结合了先进的机器人技术和自动化系统&#xff0c;旨在提高生产效…

Qt 6之五:创建菜单

Qt 6之五&#xff1a;创建菜单 Qt是一种跨平台的C应用程序开发框架&#xff0c;它提供了一套丰富的工具和库&#xff0c;可以帮助开发者快速构建跨平台的应用程序&#xff0c;用于开发图形用户界面&#xff08;GUI&#xff09;和非GUI应用程序。 Qt 6之一&#xff1a;简介、安…

LabVIEW开发分布式光纤油气管道泄漏检测及预警系统

LabVIEW开发分布式光纤油气管道泄漏检测及预警系统 随着油气工业的发展&#xff0c;管道泄漏成为一个严峻的安全问题。本文介绍了一种基于LabVIEW的分布式光纤油气管道泄漏检测及预警系统的设计思路和组成结构。系统包括硬件和软件两部分&#xff0c;其中硬件部分详细阐述了分…

【python】爬取知乎热榜Top50保存到Excel文件中【附源码】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 一、导入必要的模块&#xff1a; 这篇博客将介绍如何使用Python编写一个爬虫程序&#xff0c;从斗鱼直播网站上获取图片信息并保存到本地。我们将使用requests模块发送HTTP请求和接收响应&#xff0c;以及os模块处理文件…

一口气搞懂【Linux内存管理】,就靠这60张图、59个问题了

按&#xff1a;基于x86处理器上&#xff0c;以系统启动过程中内存管理的逐步构建为主轴&#xff0c;分析内存的管理方式与其相关的安全防护功能。 1、如何知道计算机内存布局&#xff1f;内存空间有多少&#xff1f; 春江水暖鸭先知&#xff0c;计算机上电启动的时候&#xf…

微信预约小程序制作指南:从小白到专家

在当今的数字时代&#xff0c;微信小程序已经成为了一种非常流行的应用方式。预约功能更是成为了许多小程序的核心功能之一。如果你也想为你的小程序添加预约功能&#xff0c;以下步骤将会对你有所帮助。 一、进入乔拓云网后台 乔拓云网是一个在线小程序开发平台&#xff0c;你…

.pings勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言&#xff1a; 随着科技的发展&#xff0c;网络空间中的威胁也日益猖獗&#xff0c;其中之一就是勒索病毒&#xff0c;而.pings 勒索病毒则是其中的一种。本文将深入介绍.pings 勒索病毒的特征、恢复被其加密的数据文件的方法&#xff0c;并提供预防措施&#xff0c;以保障…

【redis】Redis中的字典类型:数据结构与使用方法

文章目录 Redis中的字典类型&#xff1a;数据结构与使用方法简介如何提高哈希表性能如何使用 Redis中的字典类型&#xff1a;数据结构与使用方法 简介 Redis中的字典类型的底层实现是哈希表&#xff08;Hash Table&#xff09;。 Redis的字典使用哈希表作为底层实现&#xf…

理解 Node.js 中的事件循环

你已经使用 Node.js 一段时间了&#xff0c;构建了一些应用程序&#xff0c;尝试了不同的模块&#xff0c;甚至对异步编程感到很舒适。但是有些事情一直在困扰着你——事件循环&#xff08;Event Loop&#xff09;。 如果你像我一样&#xff0c;花费了无数个小时阅读文档和观看…

Linux--好玩的进度条

前言 先来看看我们想要达到的进度条效果&#xff0c;具体代码会在文章最后面放出。 一、创建文件及Makefile 我们需要实现声明的定义的分离&#xff0c;因此创建如下三个文件。 process.h prcess.c main.c。 touch process.h process.c main.c 同时还需要创建Makefi…

【MySQL】数据库之Redis的持久化

目录 一、Redis的高可用 1.1什么是高可用 1.2Redis的高可用技术 1.3持久化功能 1.4Redis持久化的方式 二、Redis的持久化之RDB 2.1RDB持久化的触发方式 触发条件 RDB持久化的触发分为手动触发和自动触发两种。 &#xff08;1&#xff09;手动触发 &#xff08;2&…

5 - 视图|存储过程

视图&#xff5c;存储过程 视图视图基本使用使用视图视图进阶 存储过程创建存储过程存储过程进阶存储过程参数循环结构 视图 视图是虚拟存在的表 表头下的数据在真表里 表头下的数据存储在创建视图时 在select命令访问的真表里 优点&#xff1a; 安全数据独立简单 用户无需关…

AArch64 memory management学习(二)

提示 该博客主要为个人学习&#xff0c;通过阅读官网手册整理而来&#xff08;个人觉得阅读官网的英文文档非常有助于理解各个IP特性&#xff09;。若有不对之处请参考参考文档&#xff0c;以官网文档为准。AArch64 memory management学习一共分为两章&#xff0c;这是第二章。…

Ubuntu下AI4Green开源ELN服务的简单部署

主部署程序&#xff1a;AI4Green 配置参考这篇文档&#xff1a;AI4Green开源ELN&#xff08;电子实验记录本&#xff09;-CSDN博客 流量转发和负载均衡&#xff1a;使用Nginx 配置参考这篇文档&#xff1a;Nginx负载均衡-CSDN博客 SSL配置部分参考这篇文档&#xff1a; 设置…

python自动化运维管理拓扑

1、简介 这部分实验是属于python自动化管理拓扑、配置拓扑的实验。模拟企业配置中&#xff0c;使用python自动化批量管理网络设备&#xff0c;减少人力物力时间成本的场景。 2、实验环境 ensp软件centos。 ensp中需要配置好cloud&#xff0c;连接本地的vmnet8虚拟网卡&…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)解析请求头并存储

一、解析请求头并存储 ### 解析请求头数据 1.数据存储在对应的Buffer结构内存块中。解析时&#xff0c;需要将readPos更新到请求头的起始位置parseHttpRequestLine函数中已经为解析请求头做好了准备。 回顾一下parseHttpRequestLine函数: bool parseHttpRequestLine(struct…