Vue23-props配置功能

Vue2&3-props配置功能

Vue2-props配置

  • 功能:接收从其他组件传过来的数据,将数据从静态转为动态
  • 注意:
    • 同一层组件不能使用props,必须是父组件传子组件的形式。父组件传数据,子组件接收数据。
    • 不能什么数据都接收,可能会出现一些奇怪的bug
    • props接收过来的数据不要修改,页面渲染可能没有问题,但控制台会报错,而且不符合规范

在这里插入图片描述

props的三种接收方法:

  • 第一种:数组形式(常用)
props:['a', 'b']
  • 第二种:类型限制
props : { 
    a : String 
    b : Number 
}
  • 第三种:类型限制,必要性限制,默认值
props : { 
    a : {
        // type:类型(可以是数字,字符串等)
        type : Number, 
        // required:true 或者 false
        // 设置为true视为a必须存在(必填项),没有a则控制台报错
        // 默认情况为false 
        required : true 
    }, 
    b : { 
        type : Number, 
        // default:默认值
        // 在添加默认值之前该字段接收的数据已经有数值时,则默认值无效
        default : 10 
    }
}

传数据的形式(传数据的形式可对应任意一种接受数据的方法):

  • 在标签内传数据
// 父组件
<Info name="张三" :age="12"></Info>

// 子组件
props : ['name', 'age']
  • 在data(){}中传数据
// 父组件
<Info :list="list"></Info>
data() {
    return {
        list : [
            {id:'001', name:'zhangsan', age:'10'},
            {id:'002', name:'lisi', age:'20'}
        ]
    }
}

// 子组件
props : ['list']
  • 在methods : {}中传数据
// 父组件
<Info :list="list"></Info>
method : {
    list(){
        ......
    }
}

// 子组件
props : ['list']
  • 注:传数据的形式有很多,不局限以上用法,也可以在computed : {}中传数据等

怎么用?

  • 父组件传数据,子组件接收数据
// App.vue
<template>
    <div>
        <h1>{{msg}}</h1>
        // 当出现第二 或 第三种带有限定类型的props时,要注意接受的数据是否符合类型限制
        // 不符合类型限制,但又不想修改类型,例如:age="12",可采用v-bind:
        // v-bind:简写形式 => ':',等号后面可以是常量或字符串等
        <Info name="张三" :age="12"></Info>
    </div>
</template>

<script>
    import Info from './components/Info.vue'
    export default {
        name : 'App',
        data() {
            return {
                msg : '个人信息'
            }
        },
        components : {Info}
    }
</script>
// Info.vue
<template>
    <div>
        <h3>姓名:{{name}}</h3>
        <h3>年龄:{{age}}</h3>
    </div>
</template>

<script>
export default {
    name : 'Info',
    data() {
        return {
            name: this.name
        }
    },
    // 数组形式(常用)
    props : ['name','age']
    
    // 带有类型限定
    props : { 
        name : String 
        age : Number 
    }
    
    // 类型限制,必要性限制,默认值
    props : { 
        name : {
            type : Number, 
            required : true 
        },
        age : { 
            type : Number, 
            default : 10 
        }
    }
}
</script>

Vue3-props配置

props的配置在Vue2和Vue3上基本相同,这里主要说明如何用setup调用props的接受数据
  • setup如何调用props?
    • 在setup函数中是没有this关键字的,所以在代用setup函数之前,会先给setup传递一个参数(props)
    • props参数在setup中被包装成一个代理对象,同样具有响应式处理能力
// App.vue
<template>
    <User name="jack" :age="age"></User>
</template>

<script>
    import { ref } from 'vue'
    import Info from './components/Info.vue'
    export default {
        name : 'App',
        components : {Info},
        setup(){
            let age = ref(20)
            return{age}
        }
    }
</script>
// Info.vue
<template>
    <h2>姓名:{{name}}</h2>
    <h2>年龄:{{age}}</h2>
</template>

<script>
    export default {
        name : 'Info',
        // Vue3的props依旧是Vue2的接收方式,没变
        props : [name, age],
        // setup参数名可以随意,没要求
        setup(props){
            console.log(props.name);
            console.log(props.age);
        }
    }
</script>

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

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

相关文章

EMNLP2023 | LLM作用下的成分句法分析基础研究

深度学习自然语言处理 原创作者&#xff1a;cola 自训练已被证明是一种有效的针对跨域任务的方法。传统的自训练方法依赖于有限且低质量的源语料库。为克服这一限制&#xff0c;本文提出用大型语言模型(LLM)增强自训练&#xff0c;以迭代地生成特定领域的语料库。并针对句法成分…

JavaEE初阶学习:Linux 基本使用和 web 程序部署

1.Linux的基本认识 Linux 是一个操作系统.(搞管理的系统) 和Windows都是同类产品~~ Linux 实际的场景: 1.服务器 2.嵌入式设备 3.移动端(手机)Android 其实就是Linux 1991年,还在读大学的 芬兰人 Linus Benedict Torvalds,搞了一个Linux 这样的系统0.01版,正式发布了~ 后…

Docker学习——⑥

文章目录 1、什么是存储卷?2、为什么需要存储卷?3、存储卷分类4、管理卷 Volume5、绑定卷 bind mount6、临时卷 tmpfs7、综合实战-MySQL 灾难恢复8、常见问题 1、什么是存储卷? 存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立…

js各种简单事件处理(整理)

**## 获取当天昨天日期** // 当天日期 const today new Date();// 格式化当天日期为 YYYY-MM-DD 格式 const formattedToday today.toISOString().slice(0, 10);// 昨天日期 const yesterday new Date(); yesterday.setDate(yesterday.getDate() - 1);// 格式化昨天日期为 Y…

并查集模版以及两道例题

&#x1f4af; 博客内容&#xff1a;并查集 &#x1f600; 作  者&#xff1a;陈大大陈 &#x1f680; 个人简介&#xff1a;一个正在努力学技术的准C后端工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎私信&#xff01; &#x1f496; 欢迎大家&#xff1a;这里是C…

DVWA - 2

文章目录 SQL Injectionlowmediumhigh SQL Injection low 输入 1&#xff0c;可以展示 id 1 的人员信息&#xff1a;输入 1’&#xff0c;有报错信息。可以看出是mysql数据库&#xff0c;‘‘1’’’ 去除两边的引号&#xff0c;再去除1两端的引号&#xff0c;可以看出闭合符…

Thales hsm是什么意思,有什么作用?

Thales HSM是一种硬件安全模块(Hardware Security Module&#xff0c;HSM)&#xff0c;是Thales公司开发的一种安全设备&#xff0c;用于保护和管理密码和数字证书。HSM是一种物理设备&#xff0c;通常用于需要高度安全性的环境中&#xff0c;如政府机构、金融机构、大型企业等…

底座(基座)模型是如何训练的?

我们把LLM的基本训练步骤分为两步&#xff0c;预训练和对齐&#xff1b;预训练我们非常熟悉&#xff0c;是bert-finetuning时代的基本原理&#xff0c;只不过LLM一般遵循自回归的逻辑&#xff0c;因此使用GPT模型的预训练方式&#xff1a;CLM&#xff08;具备因果关系的MLM&…

【Java 进阶篇】Java Filter 过滤器拦截路径配置详解

过滤器&#xff08;Filter&#xff09;是 Java Web 应用中一种强大的组件&#xff0c;它可以用于在请求到达目标资源之前或响应返回客户端之前执行一些预处理或后处理操作。其中&#xff0c;过滤器的拦截路径配置是非常重要的&#xff0c;它决定了过滤器会拦截哪些请求。在本文…

Kotlin系列之注解详解

目录 注解&#xff1a;file:JvmName 注解&#xff1a;JvmField 注解&#xff1a;JvmOverloads 注解&#xff1a;JvmStatic 注解&#xff1a;JvmMultifileClass 注解&#xff1a;JvmSynthetic 注解&#xff1a;file:JvmName file:JvmName(“XXX”) 放在类的最顶层&#x…

浏览器添加油猴(tampermonkey)扩展

msedge浏览器为例 1.打开msedge浏览器 2.点击右上角省略号 3.点击扩展 4.点击管理扩展 5.点击获取 Microsoft Edge 扩展 6.搜索 tampermonkey 7.获取自己想要安装的油猴

kubernetes helm

目录 一、helm 二、部署helm 三、封装chart包 四、上传chart到OCI仓库 五、部署wordpress博客系统 六、helm部署storageclass 七、helm部署ingress-nginx 八、helm部署metrics-server 九、kubeapps 一、helm Helm是Kubernetes 应用的包管理工具&#xff0c;主要用来…

经销商管理怎么做?

有人说&#xff0c;谁占据了渠道&#xff0c;谁就拥有了销售的大半个江山。在渠道为王的时代&#xff0c;每个企业都想快速打开市场&#xff0c;以渠道铺设自己的销路&#xff0c;捞取一桶桶金。因此&#xff0c;占领渠道&#xff0c;将渠道管理好是企业&#xff0c;尤其是快消…

K8S概念与架构

K8S概念与架构 一、Kubernetes 概述1、K8S 是什么2、为什么要用 K8S3、k8s介绍二、Kubernetes 集群架构与组件2.1、Master核心组件 2.2、Node核心组件 三、Kubernetes 核心概念3.1、Pod 控制器 一、Kubernetes 概述 1、K8S 是什么 K8S 的全称为 Kubernetes (K12345678S)&…

如何用Excel软件制作最小二乘法①

一、用自带的选项&#xff08;不推荐&#xff09;&#xff0c;因为感觉只是近似&#xff0c;虽然结果一样 1.在Excel中输入或打开要进行在excel中输入或打开要进行最小二乘法拟合的数据&#xff0c;如图所示。 2.按住“shift”键的同时&#xff0c;用鼠标左键单击以选择数据&a…

linux 显卡驱动 cuda 离线安装

1、 安装显卡驱动&#xff1a; Download NVIDIA, GeForce, Quadro, and Tesla Drivers &#xff08;1&#xff09;注意选择对应的cuda版本&#xff0c;和系统版本&#xff0c;并下载 &#xff08;2&#xff09;

element-Cascader级联选择器用法?

html <el-form-item label"行业选择" :label-width"formLabelWidth"><div class"m-4"><el-cascader v-model"form.tradeid" :options"options" :props"props" /></div></el-form-ite…

FPGA高端项目:图像缩放+GTX+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明本项目特点 2、相关方案推荐我这里已有的 GT 高速接口解决方案我这里已有的以太网方案我这里已有的图像处理方案 3、设计思路框架设计框图视频源选择IT6802解码芯片配置及采集动态彩条跨时钟FIFO图像缩放模块详解设计框图代码框图2种插值算法的整合与选择 …

代码随想录算法训练营Day 47 || 198.打家劫舍、213.打家劫舍II、337.打家劫舍 III

198.打家劫舍 力扣题目链接(opens new window) 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系…

CocosCreator | 2.3.3及后续版本浏览器无法断点和控制台不显示错误代码路径的解决方案(cocos代码报错无法定位的问题)

在2.3.3正式版的官方介绍中有这么一项&#xff1a; 提升网页预览时的加载速度 为了进一步提升开发效率&#xff0c;我们优化了网页预览时的脚本加载速度。不论是对引擎还是项目中的代码&#xff0c;载入速度都获得了提升。特别是在开启自定义引擎&#xff0c;或者使用手机扫码…