微信小程序事件流、生命周期以及组件

简介: 事件冒泡:从点击的元素开始触发,向上事件传播......

一、事件流

  1. 事件冒泡:从点击的元素开始触发,向上事件传播
阻止事件冒泡:event.stopProPagation()
  1. 事件捕获:多上级元素传递,传递到最具体的元素
btn.addEventListener('click',function() {//回调},true)

二、小程序中事件冒泡和阻止冒泡

bind+事件名="方法名"  向上传递事件,即事件冒泡
catch+事件名="方法名"  阻止事件冒泡

三、小程序生命周期

1. 整体小程序的生命周期:

```
App({

  onLaunch() {},   监听小程序初始化,只触发一次
  onShow(){},小程序启动或切换到前台运行
  onHide(),小程序切换到后台运行

})
```

2. 小程序页面级别的生命周期:

```
Page({
  //页面创建完,只触发一次,通常获取后台数据或接收另一个页面的传参时使用
    onLoad() {},
    //进入页面就会触发
    onShow() {},
    //页面离开时触发
    onHide() {},
    //监听页面初次渲染完成
    onReady() {},
    //监听页面卸载,类似于vue中destroyed
    onUnload() {}
    onReachBottom() {
    console.log('到底页面底部')
  },
  //下拉触发
  onPullDownRefresh() {
    console.log('onPullDownRefresh')
  },
  //点击右上角分享时触发
  onShareAppMessage() {

  }
})
```

3. 微信小程序的路由管理

两种路由触发模式:

1.标签方式触发

  vue:
   <router-link to="">

  小程序:<navigator url="要中转的路径?key=value">

  接收:通过另一个页面在onload生命周期中接收 

2.编程式触发

  vue:
  this.$router.push()

  小程序跳转:

  wx.navigateTo()  带历史回退
  wx.redirectTo() 不保留历史,跳转到另一个页面,不能返回到上一页面  this.$router.replace()
  wx.switchTab() 只跳转到tabBar页面,不带回退
  wx.reLaunch() 即能跳转到tabBar页面,也能跳转到非tabBar页面,不带历史回退

4.动态样式

  • 小程序支持的选择器:class选择器,id选择器,标签选择器,群组选择器,伪对象(:before,:after)

  • 可以对class做动态样式处理,例如:

   <button class="{
  { index===currentIndex? 'active':'' }}" >
          {
  { item.typename }}
    </button>

5.数据请求

JS原生:XMLHttpRequest,fetch
jQuery:$.ajax,$.getJSON,$.post(),$.get()
Vue:axios
React:fetch
微信小程序:wx.request() 与jQuery的$.ajax类似

wx.request({
  url:'', //请求的接口地址
  method:'get|post|put|delete',//请求方式 
  header:{},//设置请求头
  data:{}, //传参
  success() {}, //成功返回
  fail() {},// 失败返回

})

注意:

1.小程序请求的接口必须是https协议
2. 请求接口之前要提前配置接口请求:
  第一种方法:在微信小程序后台配置request合法域名
  第二种方法:在开发者工具--详情--本地配置--勾选‘不校验合法域名’

上拉加载更多
1.onReachBottom() {} 页面自带的生命周期
2.scroll-view  实现局部区域的滚动和加载更多

6.组件

  • 内置组件:微信小程序封装好的组件,直接拿来就能使用
    • swiper:轮播组件,必须要和swiper-item配合使用
例如:

    <swiper 
        class='banner'
        indicator-dots="true"
        indicator-color="#f00"
        indicator-active-color="#ff0"
        circular="true"
      >
      <swiper-item wx:for="{
  { banners }}" wx:key="{
  { item.id }}">
        <image src="{
  { item.imgurl }}"></image>
      </swiper-item>
    </swiper>

    参考:https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html
  • scroll-view:局部滚动组件,也可以做上拉加载,下拉刷新,例如:
  <scroll-view 
      scroll-y="true" 
      style="height:{
  { height }}px;"
      bindscrolltolower="lower" 
  >

    <view class="movie-item" wx:for="{
  { moveList }}" wx:key="{
  { index }}">
        <image src="{
  { item.images.small }}"></image>
         <view clas="movie-title">
            {
  { item.title }}
         </view>

      </view>


  </scroll-view>
  • navigator
  • video或audio
  • 表单相关的组件(即小程序表单标签)
    • button
    • input
    • picker
目录
相关文章
|
29天前
|
小程序 数据可视化 JavaScript
微信小程序:轻松实现时间轴组件
本文介绍了如何在微信小程序中实现一个可视化时间轴组件。该组件适用于展示用户资金流动、投资结算等时间节点,帮助用户直观了解资金去向。时间轴支持自定义节点形状、显示序号、倒序排列等功能,并通过插槽灵活定义动态内容。文中详细介绍了组件的设计与使用方法,以及如何结合动态 slot 实现自定义操作。该组件为展示用户资金信息提供了美观、易用的解决方案。
57 1
微信小程序:轻松实现时间轴组件
|
28天前
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
371 1
|
29天前
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
57 0
微信小程序:自定义关注公众号组件样式
|
1月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
51 1
|
1月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
173 1
|
29天前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
192 3
|
1月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
44 0
微信小程序更新提醒uniapp
|
3月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
104 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
3月前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
99 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
3月前
|
存储 小程序 JavaScript

热门文章

最新文章