微信小程序父子组件之间传值

news2025/1/21 3:04:02

父子组件之间传值

组件之间传值有两种,一种是父向子传值,另外一种是子向父传值

先说一下大致的区别吧…

区别:

  1. 父向子传值使用的是属性绑定,子组件中 的 properties 对象 进行接收父组件传递过来的值
  2. 子向父传值使用的是自定义事件,父组件通过自定义事件中的 事件对象e 来接收子组件传递过来的值

父向子传值

首先我们在我们的小程序中创建一个 components 文件夹 用来存放我们的子组件。创建以后我们就可以在 components 文件夹下创建我们的子组件 child , 当然创建成任何名字都可以,我在这里创建成 child ,如下图:
在这里插入图片描述
创建好以后就是引入了,把这个子组件 child 引入到我们的 父组件 index 首页中去。 这里说明一下,我在这里一共就创建了两个页面,一个是 pages 节点下的 index 路由页面,以及 components 节点下的 child 组件。

那么我们怎么引入呢?(原则在父组件的 json 文件中的 usingComponents节点下 引入)如下:

{
  "usingComponents": {
    "child":"../../components/child/child"
  }
}

引入以后怎么把子组件的内容渲染到父组件上呢?… :

也很简单:上面我们引入的时候,看上面代码:给组件起的自定义名字是 child 那么 我们渲染的时候就 在 index 父组件 里写上一组 <child><child> 标签即可,就可以把子组件渲染到 父组件中…

此时我们父子页面都有了,那么就可以进行传值了…

我们在父组件的数据data 中定义两个数据,name:'张三', age:23, 把这个数据传递给 子组件 child

在这里我们分三个步骤:

1.在 child 标签中 使用属性绑定的方式 把父组件的值绑定一下 <child name="{{ name }}" age="{{ age }}" ></child>,此时父组件的操作已经ok了,接下来看子组件的操作…
2.在子组件的 js 文件的 properties 对象中接收父组件传递过来的值

  // 接受父组件传递过来的值
  properties: {
    name:{
      type:String,
      value:'我是默认值:苹果'
    },
    age:{
      type:Number,
      value:'我是默认值: 100'
    }
  },

3.此时子组件 child 已经接收到了 父组件传递过来的值 ,我们可以在 子组件的 wxml 页面中 引用一下这个值看看是否传递成功了

<!-- 父向子传值 -->
<view>
  这是父组件传递过来的值 name: {{ name }}-----age {{age}}
</view>

index 父页面 显示的结果如下:

在这里插入图片描述

显然传递成功… >^<

接下来说说子向父传值

子向父传值

我们先在子组件的data 数据中 定义一个数据 msg

  data: {
    msg:'我是子组件的值'
  },

接下来就开始传值,传值时间上来分有两种,
第一种在组建的生命周期中,也就是页面一加载就把组件中的值传过去
第二种通过事件绑定的方式传值

先说第二种:(时间绑定的方式):

1.在子组件wxml 中放一个按钮,并给他绑定一个事件 send

<!-- 点击按钮向父组件传值 -->
<button bindtap="send">点击按钮向父组件传值</button>

2.在child.js中定义一下这个send ,并写入一下传值的代码:

 methods: {
    send(){
      this.triggerEvent('send',this.data.msg)
    }
  },

传值使用的是 :this.triggerEvent() ,上面代码中 send 就是传递给父组件的自定义事件名称,接下来就在父组件中定义一下这个自定义事件bindsend="send"

<child  name="{{ name }}" age="{{ age }}" bindsend="send"></child>

定义好以后,在 父组件的 js 文件中,定义一下send ,并且给send 方法 ,传递一个 事件对象 e

 // 父组件接受子组件传递过来的值
  send(e){
    console.log(e.detail);
  },

子组件传递过来的值就存放在 e.detail 中…

在这里插入图片描述

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

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

相关文章

wangEditor5在vue中的基本使用

目录 一、wangEditor5是什么 二、wangEditor5基本使用 &#xff08;一&#xff09;、安装 &#xff08;二&#xff09;、编译器引入 &#xff08;三&#xff09;、css及变量引入 三、wangEditor5工具栏配置 &#xff08;一&#xff09;、editor.getAllMenuKeys() &…

uniapp自定义tabbar(支持中间凸起,角标,动态隐藏tab,全端适用)

uniapp自定义tabbar&#xff08;支持中间凸起&#xff0c;角标&#xff0c;全端适用&#xff09;背景思路实现尾巴背景 在使用uniapp进行开发时&#xff0c;tabbar是我们使用的很频繁的一个组件&#xff0c;但是在特定的平台会有一些使用上的限制&#xff0c;无法通过一套代码…

box-sizing:border-box的理解和作用

盒子模型 盒子模型是指&#xff1a;外边距&#xff08;margin&#xff09; border&#xff08;边框&#xff09; 内边距&#xff08;padding&#xff09; content&#xff08;内容&#xff09; 可以把每一个容器&#xff0c;比如div&#xff0c;都看做是一个盒子模型 比如你给…

Vue实战【Vue开发中的的前端代码风格规范】

目录&#x1f31f;前言&#x1f31f;命名规范1.1 项目文件命名1.1.1 项目名1.1.2 目录名1.1.3 图像文件名1.1.4 HTML 文件名1.1.5 CSS 文件名1.1.6 JavaScript 文件名1.2 Vue 组件命名1.2.1 单文件组件名1.2.2 单例组件名1.2.3 基础组件名1.2.4 业务组件1.2.5 紧密耦合的组件名…

前端开发中常见的浏览器兼容性问题及解决方案

文章目录前言一、浏览器四大内核二、主流兼容问题&#xff08;一&#xff09;浏览器引擎&#xff08;二&#xff09;兼容问题的原因&#xff08;三&#xff09; 为什么浏览器会存在兼容性问题?&#xff08;四&#xff09;处理兼容问题的思路1. 要不要做&#xff1f;2. 做到什么…

vue3 | HighCharts实战自定义封装之径向条形图

1.前言 目前正在做vue3的数据可视化项目&#xff0c;vue3的组合式api写法十分方便&#xff0c;可以有各种玩法&#xff0c;有兴趣的同学可以看我个人主页的其他文章。难点是在网上找了一圈的有关径向条形图的示例都没有好的解决方案&#xff0c;决心亲自下手&#xff0c;在其中…

Vue(四)Vue脚手架——手把手教你安装和使用

一、什么是Vue脚手架 之前我们使用Vue框架&#xff0c;都是通过脚本的方式引入Vue脚本&#xff0c;在html中运行&#xff0c;但是这只是入门级的操作&#xff0c;下面我们介绍Vue脚手架。 脚手架&#xff1a;脚手架是一类软件的总称&#xff0c;此类软甲用于生成标准化的项目包…

Vue3中简单使用Mock.js

mock.js简介 官方链接&#xff1a;Mock.js (mockjs.com) 前端开发人员用来模拟虚拟数据&#xff0c;拦截ajax请求&#xff0c;方便模拟后端接口 安装 npm install mockjs 使用 本文主要介绍在Vue项目中使用mock.js&#xff0c;包括axios发送请求与请求简单封装 创建mock文件夹…

js+css+html制作简易留言板

jscsshtml制作简易留言板1 案例说明2 编写HTML代码3 编写css代码4 编写JavaScript代码5 全部代码1 案例说明 利用JavaScript、css以及html制作简易留言板&#xff0c;也可以看作是简易评论区。 要求在页面文本框中输入一些文字之后&#xff0c;点击“发布”按钮&#xff0c;就…

前端element-ui组件库el-card卡片【hover效果与点击事件(点击无效用@click.native=““)解决】

&#x1f680;作者简介 主页&#xff1a;水香木鱼的博客 专栏&#xff1a;后台管理系统 能量&#xff1a;&#x1f50b;容量已消耗1%&#xff0c;自动充电中… 笺言&#xff1a;用博客记录每一次成长&#xff0c;书写五彩人生。 &#x1f4d2;技术聊斋 &#xff08;1&#…

直面JavaScript数据处理的5个常见疑难杂症

前言 随着前端技术的不断发展&#xff0c;前端工作需要展示的界面越来越复杂&#xff0c;因此数据处理的场景越来越多&#xff0c;例如&#xff1a;后台管理系统中常常需要展示一个树状结构&#xff0c;后台返回的前端的数据是平级结构&#xff0c;这时候需要我们把数据转成树结…

进阶版JavaScript学习【第二期】

距离上一期更新已经过了好久&#xff0c;非常抱歉。因为自己的一些原因&#xff0c;没有能够及时更新。 博主主页&#xff1a;GUIDM的主页 专栏内容&#xff1a;进阶版JavaScript学习 往期内容&#xff1a;第一期 给大家安利一个刷题神器&#xff1a;牛客网 JavaScript系列刷题…

Vue使用Element-UI实现分页效果

前言 分页在展示数据列表的场景肯定是非常多的。 一般的项目开发中&#xff0c;数据量特别大&#xff0c;一般都是后端接口直接处理分页返回&#xff0c;前端直接调用即可。 但是前端也是可以不需要借助后端&#xff0c;自己也是可以处理分页的。今天我这个后端开发就站在前…

H5画布 canvas(一)canvas简介、绘制圆形/矩形、案例饼状图绘制

目录 1. canvas 简介 2. canvas 标签介绍 3. canvas 上下文 Context 4. 案例&#xff1a;在 canvas 画布中绘制表格 5. canvas 的 beginPath 状态 6. 绘制矩形 rect 7. 绘制圆形 arc 8. 案例&#xff1a;根据一组数据绘制饼状图 1. canvas 简介 canvas 是HTML5 提供的一…

【蓝桥杯Web】大一小白参与蓝桥杯模拟赛二期web组体会

目录 前言 一、相关比赛介绍 1.ACM国际大学生程序设计竞赛 2.蓝桥杯 3.GPLT团队程序设计天梯赛 4.leetcode周赛和双周赛 5.PAT 二、蓝桥杯 1.应该参加蓝桥杯吗&#xff1f; 2.如何进行蓝桥杯的准备 三.蓝桥杯模拟赛二期web组真题 1.凭空消失的TA&#xff08;简单&a…

node-sass安装失败解决方法,终有一款适合我们

项目中常常遇到node-sass安装失败&#xff0c;动不动就是报各种错误。以前我一次也没有失败过&#xff0c;自从系统重装我的天呀&#xff0c;node-sass就没有成功过&#xff0c;我能做的node卸载&#xff0c;sass重装各种版&#xff0c;以及换了淘宝镜像和用了vpn都安装失败。我…

Vue--Router--解决多路由复用同一组件页面不刷新问题

原文网址&#xff1a;Vue--Router--解决多路由复用同一组件页面不刷新问题_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍如何解决Vue的多路由复用同一组件页面不刷新问题。 多路由复用同一组件的场景 多路由使用同一组件 比如&#xff1a;添加博客&#xff08;path为&…

H5如何实现唤起APP

前言 写过hybrid的同学&#xff0c;想必都会遇到这样的需求&#xff0c;如果用户安装了自己的APP&#xff0c;就打开APP或跳转到APP内某个页面&#xff0c;如果没安装则引导用户到对应页面或应用商店下载。这里就涉及到了H5与Native之间的交互&#xff0c;为什么H5能够唤起APP…

【简陋Web应用3】实现人脸比对

文章目录&#x1f349; 前情提要&#x1f337; 效果演示&#x1f95d; 实现过程1. utils.py2. compare.html3. forms.py4. insightface_api.py5. app.py&#x1f345; 记录1. Bugs1.1 cv2.imshow()报错1.2 insightface人脸检测标注框错乱(&#x1f4a2;)2. 杂记&#x1f33e; 小…

给el-table-column添加指定列的点击事件该怎么做

嗨害嗨&#xff0c;我又来了奥。大家在工作中用组件吗&#xff1f;elementUI应该都用过吧&#xff0c; element是一套UI组件库,是由国内饿了么团队开发的。它提供了丰富的PC组件,有效地降低了使用者的开发难度。 如果工作中遇到了表格&#xff0c;我们经常会用el-table组件来写…