当前位置: 首页 > news >正文

小程序学习day11-生命周期函数、组件所在页面的生命周期、自定义组件的插槽、自定义组件的父子通信

40、自定义组件(续)(续)

(10)生命周期函数

1)小程序里的全部生命周期函数
        ①created(在组件刚被创建时执行)(被创建,但未被放入页面):无参数
        ②attached(在徐建实例进入到页面节点树时执行)(进入页面,但未渲染):无参数
        ③ready(在组建在视图布局完成以后执行)(已被渲染完成):无参数
        ④moved(在组件实例被移动到节点树的另一个位置时执行):无参数
        ⑤detached(在组件实例被从页面移除时执行):无参数
        ⑥error(每当组件方法抛出错误时执行):参数为Objedct Error
2)主要的生命周期函数及其特点
        ①created(组件实例刚被创建好时触发)(此时不能调用setData)(通常在此时,仅能用于给组件添加一些自定义的属性字段)
        ②attached(在组件完全初始化完毕,进入页面节点树以后,被触发)(此时,this.data已经初始化完毕)(在这时,可以进行绝大数的初始化工作,比如:发送请求)
        ③detached(在组件离开页面节点树以后触发)(退出一个页面,触发页面每个自定义组件的detached函数)(此时,适合做一些清理性质的工作)
3)如何创建生命周期函数
①旧方法(类似于vue)

语法:生命周期函数(){}

②新方法

Lifetimes:{

生命周期函数(){}

}

(11)组件所在页面的生命周期(自定义组件的行为依赖于页面的变化)

1)组件所在页面的生命周期函数
        ①show(组件所在页面被展示时执行):无参数
        ②hide(组件所在页面被隐藏时执行):无参数
        ③resize(组件所在页面尺寸变化时执行):Object Size
2)语法:

        pageLifetimes:{

                show(){},

                hide(){},

                resize(){}

        }

(12)自定义组件的插槽(在自定义组件的wxml中,提供slot节点)

1)作用:用于承担组件使用者提供的wxml结构
2)单个插槽(在小程序中,默认每个自定义组件只允许使用一个插槽占位)
应用:
①在组件wxml通过slot占位

②在使用页面wxml中通过view填入想要写的内容

3)多个插槽
①在对应组件的js中开启允许多个插槽的设置

②通过name给插槽命名,便于区别

③使用(通过slot=””)

(13)自定义组件的父子通信

1)父子通信的方式
        ①属性绑定(用于父组件向子组件的指定属性设置数据,仅能设置JSON兼容的数据)
        ②事件绑定(用于子组件向父组件传递数据,可以传递任何数据)
        ③获取组件实例(父组件还可以通过this.selectComponent()获取子组件实例对象,可以直接访问子组件的任意数据和方法)
2)属性绑定(父传子)(只能传递普通类型的数据,无法将方法传递给子组件)(子组件通过properties节点声明对应的属性并使用)
        ①父组件提供数据

        ②父组件传递数据

        ③子组件在properties中接收

        ④在子组件中使用

3)事件绑定(子传父)

已知:

子组件中无法同步修改父组件传过来的值

①在父组件的js中,定义一个函数,这个函数即将通过自定义事件的形式,传递给子组件

②在父组件wxml中,通过自定义事件的形式,引用①中的自定义函数,传递给子组件

③在子组件的js中,通过调用this.triggerEvent(‘自定义事件名称’,{/*参数对象*/}),将数据传递给父组件

④在父组件的js中,通过e.detail获取到子组件传递过来的数据

传参:

调用:

⑤使用(同步父组件的值)

4)获取组件实例(父组件还可以通过this.selectComponent(“id或class选择器”)获取子组件实例对象,可以直接访问子组件的任意数据和方法)(调用时,需要传入一个选择器)
①给父组件添加方法,子组件添加类

②通过父组件的方法控制子组件的属性

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • VS2022 - 制作自己的C#类库dll,并输出Unity识别的pdb调试信息文件
  • 7. 数据结构—二叉树(链式存储)
  • 改编版猜数字小游戏,猜错了就黑屏(整蛊版本)
  • PhotoZoom Pro 9:AI加持让图像放大革命性飞跃 PhotoZoom下载
  • mkv怎么转换mp4格式?格式转换秘籍大揭底!
  • 《黑神话:悟空》发售后快手游戏笔记本电脑GMV日环比增长40%
  • haproxy编译安装
  • 闲置物品交易平台网站商城-计算机毕设Java|springboot实战项目
  • 泛微eteams OA对接金蝶云星空写入数据
  • 火语言RPA流程组件介绍--打开文件/运行进程命令
  • 通过Qt Creator Plugin开发Qt Creator插件-【金丹篇】
  • 视频项目开发,EasyCVR视频融合平台为何成为关键驱动力
  • jenkins最佳实践(一):jenkins安装与部署
  • SAP 界面小技巧-快速查找单据及路径
  • 机械学习—零基础学习日志(如何理解概率论5)
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【mysql】环境安装、服务启动、密码设置
  • Android单元测试 - 几个重要问题
  • Debian下无root权限使用Python访问Oracle
  • download使用浅析
  • Git学习与使用心得(1)—— 初始化
  • js正则,这点儿就够用了
  • Making An Indicator With Pure CSS
  • RxJS: 简单入门
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • vue-cli3搭建项目
  • 阿里云应用高可用服务公测发布
  • 和 || 运算
  • 前端_面试
  • 前端技术周刊 2019-02-11 Serverless
  • 浅谈Golang中select的用法
  • 如何学习JavaEE,项目又该如何做?
  • 三分钟教你同步 Visual Studio Code 设置
  • 微信小程序:实现悬浮返回和分享按钮
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 新版博客前端前瞻
  • 组复制官方翻译九、Group Replication Technical Details
  • #include
  • (C++20) consteval立即函数
  • (分布式缓存)Redis哨兵
  • (分享)自己整理的一些简单awk实用语句
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (转)编辑寄语:因为爱心,所以美丽
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET单元测试
  • .NET应用架构设计:原则、模式与实践 目录预览
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑