小程序 自定义组件和生命周期

这篇具有很好参考价值的文章主要介绍了小程序 自定义组件和生命周期。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

⾃定义组件

类似vue或者react中的自定义组件

⼩程序允许我们使⽤⾃定义组件的⽅式来构建⻚⾯。

创建⾃定义组件

类似于页面,一个自定义组件由 json wxml wxss js 4个文件组成

可以在微信开发者⼯具中快速创建组件的⽂件结构
小程序 自定义组件和生命周期,小程序,前端,javascript

在⽂件夹内 components/myHeader ,创建组件 名为 myHeader

声明组件

首先需要在组件的json文件中进行自定义组件声明
myHeader.json

"component" : true

编辑组件

同时,还要在组件的wxml文件中编写组件模板。在wxss文件中加入组件样式
slot表示插槽,类似vue中的slot

myHeader.wxml

<!-- 这是自定义组件的内部WXML结构 -->
<view class="inner">
 {{innerText}}
    <slot></slot>
</view>

在组件的 wxss ⽂件中编写样式
注意:在组件wxss中不应使用ID选择器、属性选择器和标签名选择器。

myHeader.wxss

/* 这里的样式只应用于这个自定义组件 */
.inner {
  color: red;
}

注册组件

在组件的 js ⽂件中,需要使⽤ Component() 来注册组件,并提供组件的属性定义、内部数据和⾃定义⽅法

myHeader.js

Component({
  properties: {
    // 这里定义了innerText属性,属性值可以在组件使用时指定
    innerText: {
      // 期望要的数据是 string类型
      type: String,
      value: 'default value',
   }
 },
  data: {
    // 这里是一些组件内部数据
    someData: {}
 },
  methods: {
    // 这里是一个自定义方法
    customMethod: function(){}
 }
})

声明引⼊⾃定义组件

⾸先要在⻚⾯的 json ⽂件中进⾏引⽤声明。还要提供对应的组件名和组件路径
index.wxml

{
 // 引用声明
  "usingComponents": {
 // 要使用的组件的名称     // 组件的路径
    "my-header":"/components/myHeader/myHeader"
 }
}

⻚⾯中使⽤⾃定义组件

<view>
  <!-- 以下是对一个自定义组件的引用 -->
  <my-header inner-text="Some text">
    <view>用来替代slot的</view>
    </my-header>
</view>

定义段与⽰例⽅法

Component 构造器可⽤于定义组件,调⽤ Component 构造器时可以指定组件的属性、数据、⽅法等。

定义段 类型 是否必填 描述
properties Object Map 组件的对外属性,是属性名到属性设置的映射表,参⻅下⽂
data Object 组件的内部数据,和 properties ⼀同⽤于组件的模板渲染
observers Object 组件数据字段监听器,⽤于监听 properties 和 data 的变化,参⻅ 数据监听器
methods Object 组件的⽅法,包括事件响应函数和任意的⾃定义⽅法,关于事件响应函数的使⽤,参⻅ 组件事件
created Function 组件⽣命周期函数,在组件实例刚刚被创建时执⾏,注意此时不能调⽤ setData ,参⻅ 组件⽣命周期
attached Function 组件⽣命周期函数,在组件实例进⼊⻚⾯节点树时执⾏,参⻅ 组件⽣命周期
ready Function 组件⽣命周期函数,在组件布局完成后执⾏,参⻅ 组件⽣命周期
moved Function 组件⽣命周期函数,在组件实例被移动到节点树另⼀个位置时执⾏,参⻅ 组件⽣命周期
detached Function 组件⽣命周期函数,在组件实例被从⻚⾯节点树移除时执⾏,参⻅ 组件⽣命周期

组件-⾃定义组件传参

  1. ⽗组件通过属性的⽅式给⼦组件传递参数
  2. ⼦组件通过事件的⽅式向⽗组件传递参数

过程

  1. ⽗组件 把数据 {{tabs}} 传递到 ⼦组件的 tabItems 属性中
  2. ⽗组件 监听 onMyTab 事件
  3. ⼦组件 触发 bindmytap 中的 mytap 事件
    • ⾃定义组件触发事件时,需要使⽤ triggerEvent ⽅法,指定 事件名 、 detail 对象
    • ⽗ -> ⼦ 动态传值 this.selectComponent(“#tabs”);

父组件代码

// page.wxml
<tabs tabItems="{{tabs}}" bindmytap="onMyTab" >
 内容-这里可以放插槽
</tabs>
// page.js
  data: {
    tabs:[
     {name:"体验问题"},
     {name:"商品、商家投诉"}
   ]
 },
  onMyTab(e){
    console.log(e.detail);
 },

子组件代码

// com.wxml
<view class="tabs">
  <view class="tab_title"  >
    <block  wx:for="{{tabItems}}" wx:key="{{item}}">
      <view bindtap="handleItemActive" data-index="{{index}}">{{item.name}}</view>
    </block>
  </view>
  <view class="tab_content">
    <slot></slot>
  </view>
</view>
// com.js
Component({
  properties: {
    tabItems:{
      type:Array,
      value:[]
   }
 },
  /**
   * 组件的初始数据
   */
  data: {
 },
  /**
   * 组件的方法列表
   */
  methods: {
    handleItemActive(e){
      this.triggerEvent('mytap','haha');
   }
 }
})

效果
小程序 自定义组件和生命周期,小程序,前端,javascript

小程序生命周期

分为应⽤⽣命周期和⻚⾯⽣命周期

应用生命周期

属性 类型 默认值 必填 说明
onLaunch function 监听⼩程序初始化。
onShow function 监听⼩程序启动或切前台。
onHide function 监听⼩程序切后台。
onError function 错误监听函数。
onPageNotFound function ⻚⾯不存在监听函数。

页面生命周期

属性 类型 说明
data Object ⻚⾯的初始数据
onLoad function ⽣命周期回调—监听⻚⾯加载
onShow function ⽣命周期回调—监听⻚⾯显⽰
onReady function ⽣命周期回调—监听⻚⾯初次渲染完成
onHide function ⽣命周期回调—监听⻚⾯隐藏
onUnload function ⽣命周期回调—监听⻚⾯卸载
onPullDownRefresh function 监听⽤⼾下拉动作
onReachBottom function ⻚⾯上拉触底事件的处理函数
onShareAppMessage function ⽤⼾点击右上⻆转发
onPageScroll function ⻚⾯滚动触发事件的处理函数
onResize function ⻚⾯尺⼨改变时触发,详⻅ 响应显⽰区域变化
onTabItemTap function 当前是 tab ⻚时,点击 tab 时触发

页面生命周期

小程序 自定义组件和生命周期,小程序,前端,javascript文章来源地址https://www.toymoban.com/news/detail-801471.html

到了这里,关于小程序 自定义组件和生命周期的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序_16,组件的生命周期

    组件的全部生命周期函数: 小程序可用的全部生命周期如下表所示: 生命周期函数 参数 描述说明 created 无 在组件实例刚刚被创建时执行 attached 无 在组件实例进入页面节点树时执行 ready 无 在组件在视图层布局完成后执行 mooved 无 在组件实例被移动到节点树另一个位置时执行

    2024年02月09日
    浏览(52)
  • 【微信小程序】生命周期,插槽和组件间通信

    1.1 组件全部的生命周期函数 小程序组件可用的全部生命周期如下表所示 生命周期函数 参数 描述说明 created 无 在组件实例刚刚被创建时执行 attached 无 在组件实例进入页面节点树时执行 ready 无 在组件在视图层布局完成后执行 moved 无 在组件实例被移动到节点树另一个位置时

    2024年02月11日
    浏览(56)
  • 【微信小程序】父子组件的创建、通信与事件触发;组件生命周期

    关于微信小程序中父子组件的创建、传值,以及涉及到的组件生命周期。 组件的使用可以 提高开发效率 并 确保功能在各个页面上的应用和修改的一致性 。 例如,对于一些重复的功能,比如顶部导航栏或评论区,将其提炼成组件后,我们只需要在不同的页面中引用该组件,

    2024年02月03日
    浏览(61)
  • uniapp 微信小程序:页面+组件的生命周期顺序

    这个uniapp的微信小程序项目使用的是 VUE2 首页只提供了一个跳转按钮。 虽然文档中将页面与组件的生命周期分开罗列,但是我们在页面和组件中所有的生命周期函数都加上,看下效果: uniap 页面生命周期 uniapp 组件生命周期

    2024年02月15日
    浏览(41)
  • 【小程序全面解析】生命周期、常用组件,代码示例和使用场景

    ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社区 📙 专栏地址:小程序从入门到精通 【分享几个国内免费可用的ChatGPT镜像】 【10几个类ChatGPT国内AI大模型】 【用《文心一言》1分钟写一篇博客简直yyds】

    2023年04月09日
    浏览(72)
  • 前端(九)——探索微信小程序、Vue、React和Uniapp生命周期

    🙂博主:小猫娃来啦 🙂文章核心: 探索微信小程序、Vue、React和Uniapp生命周期 微信小程序: 微信小程序是一种基于微信平台的应用程序,可以在微信内部直接使用,无需下载安装。它采用前端技术构建,包括HTML、CSS和JavaScript,并且可以调用微信提供的API进行功能扩展。微

    2024年02月15日
    浏览(39)
  • 微信小程序:uni-app页面Page和组件Component生命周期执行的先后顺序

    文档 页面生命周期 https://uniapp.dcloud.net.cn/tutorial/page.html#lifecycle 组件生命周期 https://uniapp.dcloud.net.cn/tutorial/page.html#componentlifecycle 经测试,得出结论: H5和微信小程序的生命周期函数调用顺序不一致 一般情况下,主要使用的周期函数如下,他们的执行顺序是固定的 页面 组件

    2024年02月08日
    浏览(58)
  • 微信小程序显示loading效果,微信小程序节流效果,微信小程序生命周期,微信小程序组件的创建与使用

            文档地址:wx.showLoading(Object object) | 微信开放文档         请求前 显示loading 效果 ,请求结束后隐藏loading         下拉触底需要时间比较长,但是可能会一直进行请求,我们可以 设置一个 加载状态 ,用来控制什么时候 才可以加载         当我们loading 效果为tr

    2024年02月10日
    浏览(73)
  • Android Jetpack中Lifecycle使用生命周期感知型组件处理生命周期

    在使用Kotlin实现Android Jetpack中Lifecycle使用生命周期感知型组件处理生命周期的功能时,你需要以下步骤: 首先,在app的build.gradle文件中添加Lifecycle相关库的依赖项: 然后,在你的Activity或Fragment中创建一个LifecycleObserver对象,并使用@OnLifecycleEvent注解来实现相应的生命周期方法

    2024年01月21日
    浏览(49)
  • 【React】组件生命周期、组件通信、setState

    ◼ 组件化思想的应用: ​  有了组件化的思想,我们在之后的开发中就要充分的利用它。 ​  尽可能的将页面拆分成一个个小的、可复用的组件。 ​  这样让我们的代码更加方便组织和管理,并且扩展性也更强。 ◼ React的组件相对于Vue更加的灵活和多样,按照不同的

    2024年01月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包