IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微信小程序父子组件之间传值 -> 正文阅读

[移动开发]微信小程序父子组件之间传值

父子组件之间传值

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

先说一下大致的区别吧…

区别:

  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 中…

在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:16:18  更:2022-06-25 18:16:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 2:24:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码