quickapp_快应用_父子组件传值

目录

        • 页面级组件
        • 自定义组件(子组件)
          • 引入自定义组件(子组件)
          • 父组件给子组件传值
          • 子组件给父组件进行传值
          • 父组件调用子组件的方法

页面级组件

pages中定义的组件被称为页面级组件。

页面级组件(等同于Vue页面),通过路由配置可以进行页面跳转。

自定义组件(子组件)

components中定义的组件被称为自定义组件。

自定义组件(等同于Vue的子组件),将使用比较多的部分进行封装,可以多次使用。

引入自定义组件(子组件)

在这里插入图片描述
举例说明
在这里插入图片描述

父组件给子组件传值

父组件给子组件传值使用的是props,其语法与vue 的props传值类似,可以规定传值类型、默认值等,还可以进行数据校验。

区别: 父组件给子组件进行传值时使用的是短横线分割命名,在子组件中通过props 接收时使用的是驼峰命名

在进行校验时,验证顺序是 必填项检查 -> 类型检查 -> 函数检查

语法

  • 父组件
      <!-- 如果属性名是多个单词 使用短横线分割命名 --><son 属性名=属性值></son>
    
  • 子组件
    props: [] // 仅类型检查
    
    props:{属性名:{type: String/Number... // 类型检查required: true/false // 是否必填default:  // 默认值validator: function(value){return true/false // 检查是否符合要求}}
    }
    

举例说明:在父组件接收三个参数分别为name( 字符串类型且必传),年龄(数字类型,只能接受18,19,29三个中的某一个数字),地址(字符串类型,不能超过18个字, 默认为中国)并将展示在页面上

  • 父组件

    <import name="son" src="../../components/Detail"></import>
    <template><div class="wrapper"><son per-name='{{name}}' per-age='{{age}}'></son></div>
    </template><script>
    export default {public:{name: 'chaochao',age: 18}
    }
    </script>
    
  • 子组件

    <template><div class="wrapper"><text>{{ perName }}</text><text>{{ perAge }}</text><text>{{ perArea }}</text></div>
    </template><script>
    export default {props:{perName:{type: String,required: true},perAge:{type: Number,validator: function(value){return [18, 19, 29].includes(value)}},perArea:{type: String,default: '中国',validator: function(value){return value.length < 18}}}
    }
    </script>
    
  • 展示结果
    在这里插入图片描述

子组件给父组件进行传值

父给子组件进行传值是单向数据流,也就是说子组件不能直接修改父组件传值的引用!
在这里插入图片描述
语法

// 子组件
this.$dispatch('子组件触发事件名',)
// 父组件
onInit(){this.$on('子组件触发事件名',触发的父方法方法)
}
// 子组件
this.$emit(方法名,值)
// 父组件
<son on方法名=‘父组件方法’></son>

举例说明:在子组件修改父组件传过来的name属性

  • 方式1

    • 子组件:触发父组件自定义事件
      editname(){this.$dispatch('dispatchEvt',{name:'niuniu'})
      }
      
    • 子组件:监听自定义事件触发
      onInit(){this.$on('dispatchEvt',this.editName)
      },
      editName(value){console.log(value)
      }
      
      打印结果如下:
      在这里插入图片描述
      因此我们可以通过如下方式进行赋值
      editName(value){this.name = value.detail.name
      }
      
  • 方式2

    • 子组件
      editname(){this.$emit('editName',{name:'niuniu'})
      }
      
    • 父组件
      <son p-name="{{name}}" p-age="{{age}}" onedit-name='editname'></son>
      
      editname(value){console.log(value)
      }
      
      打印结果如下:
      在这里插入图片描述
      因此我们可以通过如下方式进行赋值
      editName(value){this.name = value.detail.name
      }
      

tips: 当传递结束后,可以调用value.stop()来结束传递,否则会一直传递下去

父组件调用子组件的方法
<son id='xxx'></son>
const ele = this.$child('子组件id名') // 获取子组件
ele.方法名() //  方法调用

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS学习--类型转换

函数转换 parseInt() 转换之前&#xff0c;首先会分析该字符串。判断位置为0处的字符串&#xff0c;判断是否为有效数字&#xff0c;若否&#xff0c;直接返回NaN&#xff0c;不再继续&#xff1b; 若是&#xff0c;继续打印直到不为数字的地方停止 parseFloat() 转换之前&…

TA-Lib学习研究笔记(三)——Volatility Indicator

TA-Lib学习研究笔记&#xff08;三&#xff09;——Volatility Indicator 波动率指标函数组 Volatility Indicators: [‘ATR’, ‘NATR’, ‘TRANGE’] 1.ATR Average True Range 函数名&#xff1a;ATR 名称&#xff1a;真实波动幅度均值 简介&#xff1a;真实波动幅度均值…

CRM选型:避免盲目跟风,要选最适合自己的!

CRM系统品牌繁多&#xff0c;各有优劣。对CRM系统不够了解的企业该如何选到适合的CRM系统&#xff1f;针对这个问题&#xff0c;我们就来聊聊&#xff0c;如何判定CRM系统是否适合自身企业&#xff1f; 一、综合性 CRM系统应该具有很好的综合性能&#xff0c;能够管理客户的整…

操作系统:进程调度算法(FCFS、SJF、HRRN、RR、HPF、MFQ)

进程调度算法也称 CPU 调度算法&#xff0c;毕竟进程是由 CPU 调度的。 非抢占式调度&#xff1a;当进程正在运行时&#xff0c;它就会一直运行&#xff0c;直到该进程完成或发生某个事件而被阻塞时&#xff0c;才会把 CPU 让给其他进程。抢占式调度&#xff1a;进程正在运行的…

离线数仓构建案例一

数据采集 日志数据&#xff08;文件&#xff09;到Kafka 自己写个程序模拟一些用户的行为数据&#xff0c;这些数据存在一个文件夹中。 接着使用flume监控采集这些文件&#xff0c;然后发送给kafka中待消费。 1、flume采集配置文件 监控文件将数据发给kafka的flume配置文件…

JAVAEE初阶相关内容第十六弹--网络原理之TCP_IP

目录 1. TCP-IP五层模型 2. UDP协议 2.1 特点 2.2 UDP协议端格式 2.3 校验和 3. TCP协议 3.1 特点 3.2 TCP协议段格式 3.2.1 首部长度 3.2.2 选项 3.2.3 保留6位 3.3 TCP内部的工作机制 3.3.1 确认应答 &#xff08;1&#xff09;应答报文ack &#xff08;2&…

Redis5新特性-stream

Stream队列 Redis5.0 最大的新特性就是多出了一个数据结构 Stream&#xff0c;它是一个新的强大的 支持多播的可持久化的消息队列&#xff0c;作者声明 Redis Stream 地借鉴了 Kafka 的设计。 生产者 xadd 追加消息 xdel 删除消息&#xff0c;这里的删除仅仅是设置了标志位&am…

深入理解和使用volatile关键字

第1章&#xff1a;引言 大家好&#xff01;今天小黑要和大家聊聊Java并发编程的一个重要话题——volatile关键字。在Java的世界里&#xff0c;掌握并发编程是一项必备技能&#xff0c;尤其是当咱们处理多线程应用时。你可能听说过这样的情况&#xff1a;即使你的代码看起来毫无…

【IEEE独立出版|Ei会议征稿中】第五届信息科学与并行、分布式处理国际学术会议(ISPDS 2024)

第五届信息科学与并行、分布式处理国际学术会议&#xff08;ISPDS 2023&#xff09; 2023 5th International Conference on Information Science, Parallel and Distributed Systems 第五届信息科学与并行、分布式处理国际学术会议&#xff08;ISPDS 2023&#xff09;定于20…

Cesium 顶点吸附和区域拾取

Cesium 顶点吸附和区域拾取 基于深度实现可以自定义拾取范围大小 // 顶点吸附// const result pickAreaHelper.pickNearest(viewer.scene, movement.endPosition, 32, 32);// 区域拾取const result pickAreaHelper.pickArea(viewer.scene, movement.endPosition, 32, 32);顶…

关系型数据库的数据隔离级别Read Committed与Repeatable Read

一、背景 数据库隔离级别会影响到我们的查询&#xff0c;本文试图以生产中的示例&#xff0c;给你一个直观的认识。 所谓&#xff0c;理论要结合实践&#xff0c;才能让我们理解得更加透彻。 另外&#xff0c;隔离级别的知识面很大&#xff0c;本文也不可能俱全&#xff0c;…

Python+OpenCV实现最强自动扫雷

文章目录 准备实现思路窗体截取雷块分割雷块识别扫雷算法实现关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 用…