目录

1、生命周期调用函数

2、组件事件处理函数

3、tabBar标签栏的配置

4、条件渲染

5、列表渲染

6、轮播图的联动效果实现

7、页面跳转方式

8、数据缓存

9、Socket连接

10、picker组件


1、生命周期调用函数

常见的生命周期函数有onLaunch、onLoad、onReady、onShow、onHide、onUnload

onLaunch:当小程序初始化完成时,会触发 onLaunch(全局只触发一次)

onLoad:页面加载时触发,一个页面只会调用一次。通过参数options可以获取打开当前页面路径中的参数。

onReady:页面初次渲染完成的时候调用。一个页面只会调用一次,代表页面已经准备妥当,此时可以与视图层进行交互。

onShow:当前页面显示时触发。例如从后台切入前台。

onHide:当页面隐藏时触发。例如从后台切入 前台。

onUnload:页面卸载时触发。例如使用API中的wx.redirectTo()或wx.navigateBack()跳转其他页面触发。

2、组件事件处理函数

组件事件处理函数用于为组件绑定事件,通常为组件绑定事件有两种 "bind事件类型" 和"catch事件类型"

bind方式,不会阻止冒泡事件向上冒泡,而catch可以阻止冒泡事件向上冒泡

2.1、e.target和e.currentTarget的区别

<view bindtap="viewtap" id="outer">
outer
<view id="inner">inner</view>
</view>
 viewtap:function(e){console.log(e.target.id+"-"+e.currentTarget.id)}

单击outer会输出outer-outer,单击inner会输出inner-outer,而父元素绑定了viewtap事件,子元素没有绑定viewtap事件,因此

  • e.target指向的是触发事件的元素;
  • e.currentTarget指向的是添加监听事件的元素;

3、tabBar标签栏的配置

tabBar用于实现页面底部的标签栏,主要属性如下,其中list是一个数组,数组中的每一个元素都是一个标签按钮对象,设置对应的属性时,可以跳转到对应的标签页。其中list种至少有两个元素,最多不超过五项

属性 说明
color 未选择时,底部导航栏颜色
selectedColor 选中时,底部导航栏颜色
borderStyle 底部导航边框颜色
backgroundColor 底部导航背景色
list 导航配置数组
pagePath 页面访问地址
iconPath 未选择时图片路径
selectedIconPath 选中时图片路径
text 导航图标下方文字

标签栏示例代码如下:

"tabBar": {"color": "#FF000000","selectedColor": "#ff4c91","borderStyle": "white","backgroundColor": "#ffffff","list": [{"pagePath": "pages/index/index","iconPath": "images/invite.png","selectedIconPath": "images/invite.png","text": "邀请函"},{"pagePath": "pages/picture/picture","iconPath": "images/marry.png","selectedIconPath": "images/marry.png","text": "照片"},{"pagePath": "pages/video/video","iconPath": "images/video.png","selectedIconPath": "images/video.png","text": "美好时光"},{"pagePath": "pages/map/map","iconPath": "images/map.png","selectedIconPath": "images/map.png","text": "婚礼地点"},{"pagePath": "pages/guest/guest","iconPath": "images/guest.png","selectedIconPath": "images/guest.png","text": "宾客信息"}]},

 4、条件渲染

wx:if、wx:elif、wx:else,可以用其来控制标签的显示与隐藏

代码示例

<view><block wx:if="{{num1>num2}}"><text>比较结果:第一个数大</text></block><block wx:elif="{{num1<num2}}"><text>比较结果:第二个数大</text></block><block wx:else="{{num1==num2}}"><text>比较结果:两数相等</text></block>
</view>  

注意:使用wx:if和组件设置hidden属性都可以实现元素的隐藏与显示,二者有什么区别?

(1)wx:if 是遇 true 显示,hidden 是遇 false 显示。

(2)wx:if 在隐藏的时候不渲染,而 hidden 在隐藏时仍然渲染,只是不呈现。

(3)如果频繁切换的话,用 wx:if 将会消耗更多资源,因为每次呈现的时候他都会渲染,每次隐藏的时候,他都会销毁。

(4)如果切换并不频繁的话,用 wx:if 相对来说较好些,因为它会避免初始就一下渲染那么多

5、列表渲染

在组件上,使用wx:for绑定一个数据,遍历次数据,就可以使用数组中的各项元素重复渲染该组件。

// index.js中的数据部分data: {gender:[{name:'男',value:'0',checked:true},{name:'女',value:'1',checked:false}]}<!-- index.wxml中的渲染部分 -->
<view><text>性别:</text><radio-group name="gender"><label wx:for="{{gender}}" wx:key="value"><radio value="{{item.value}}" checked="{{item.checked}}"/>{{item.name}}</label></radio-group>
</view>

在渲染列表中,可以使用item表示数组的当前项,使用index表示当前项的下标。wx:key表示每一项的唯一标识,此代码中value的值都是唯一的,也可以用保留关键字*this标识将每一项本身作为唯一标识。

在列表渲染中,设置wx:key可以在数据改变后在页面中重新渲染时,使原有的组件保持自身的状态,而不是重新创建,提高了列表渲染时的效率。

6、轮播图的联动效果实现

1、swiper组件

swiper组件是滑块视图容器,经常用于实现轮播图,在音乐播放器小程序中可以实现标签页的切换。

属性:

属性 类型 说明
indicator-dots Boolean 是否显示页面的指示点,默认为false
indicator-color Color 指示点的颜色
indicator-active-color Color 选中的指示点颜色
autoplay Boolean 是否自动切换,默认为false
current Number 当前所在滑块的index,默认为0
current-item-id String 当前所在滑块的item-id
interval Number 自动切换时间间隔(ms)
duration Number 滑动动画时长(ms)
bindchange EventHandle current改变时会触发change事件
circular Boolean 是否采用衔接滑动,默认false

(1)自动播放的轮播图实现

<swiper class="content-info-slipe" indicator-color="rgba(255,255,255,4)" indicator-active-color="#fff"  indicator-dots  autoplay><swiper-item><image src="/images/test3.jpg"></image></swiper-item><swiper-item ><image src="/images/test2.jpg"></image></swiper-item><swiper-item ><image src="/images/test1.jpg"></image></swiper-item>
</swiper>

(2)单击上面一栏的标签,定位当前current的位置,改变下面的轮播页面(参考音乐播放器标签页的切换)

主要代码片段

<view class="tab"><view class="tab-item {{tab==0 ? 'active' : ''}} " bindtap="changeItem"  data-item="0">音乐推荐</view><view class="tab-item {{tab==1 ? 'active' : ''}}"   bindtap="changeItem" data-item="1">播放器</view><view class="tab-item  {{tab==2 ? 'active' : ''}} " bindtap="changeItem" data-item="2">播放列表</view>
</view>
<view class="content" ><swiper current="{{item}}"  bindchange="changeTab"><swiper-item >  <include src="play.wxml"/>  </swiper-item><swiper-item >  <include src="info.wxml"/> </swiper-item><swiper-item>   <include src="playlist.wxml"/> </swiper-item></swiper>
</view>

数据和事件绑定部分:changeItem绑定事件函数 用来把当前view标签里data-item属性里的值给item,再将item作为current的属性值,便可以单击实现标签页的转换。changeTab函数用来将current的值给tab,再利用三目表达式(tab==0 ? 'active' : '')可以给当前单击的标签设置样式。

Page({data: {item:0,tab:0},changeItem:function(e){this.setData({item:e.target.dataset.item})},changeTab:function(e){this.setData({tab:e.detail.current})}
})

7、页面跳转方式

1、wx.switchTab

wx.switchTab用于页面跳转,且只能跳到tabBar页面,并关闭其他的tabBar页面

常用属性

属性 类型 说明
url string 需要跳转的tabBar页面的路径(需要在app.json的tabBar字段定义的页面)路径后不能带有参数
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(成功失败都会执行)

2、wx.navigateTo和wx.redirectTo

(1)wx.navigateTo 用于跳转到应用内的某个页面,且保留当前页面。跳转页面后,单击左上角可以返回上一个页面。需要注意的是,wx.navigateTo只能跳转到非标签页。另外,使用wx.navigateTo可以回到原页面。

(2)wx.redirectTo 用于跳转到应用内的某个页面,且关闭当前页面,不能返回上一个页面,只能跳到非标签页

属性与wx.switchTab的一样,只不过wx.navigateTo和wx.redirectTo的url属性值路径可以带参数,例如url:detail?id=1

3、wx.reLaunch

wx.reLaunch关闭所有页面,打开到应用内的某个页面。既能跳到标签页,又能跳到非标签页

8、数据缓存

1、异步缓存

名称 说明
wx.setStorage() 将数据存储在本地缓存中指定的key中
wx.getStorage() 从本地缓存中异步获取指定key的内容
wx.getStorageInfo() 异步获取当前stroage的相关信息
wx.removeStroage() 从本地缓存中移除指定的key

2、同步缓存(Sync为同步的标识)

名称 说明
wx.setStorageSync() wx.setStorage()的同步版本
wx.getStorageSync() wx.getStorage()的同步版本
wx.getStorageInfoSync() wx.getStorageInfo()的同步版本
wx.removeStroageSync() wx.removeStorage()的同步版本

注意:异步方式通过传入回调函数执行结果,而同步方式通过返回值获取结果。

如果发生错误,异步方式会执行fail回调函数返回错误,而同步方式则通过try.....catch捕获异常来获取错误信息。

9、Socket连接

wx.sendSocketMessage() 用于通过WebSocket连接发送数据。

wx.connectSocket() 用于创建服务器连接。

wx.onSocketMessage() 监听WebSocket接收到服务器的消息事件。

wx.onSocketOpen() 用来设置WebSocket连接打开的回调函数。

wx.closeSocket() 在已经连接成功后才能关闭连接。

10、picker组件

picker组件是从底部弹起的滚动选择器,目前支持5种选择器,通过mode方法来区分

分别是普通选择器(mode=”selector”)、多列选择器(mode=”multiSelector”)、时间选择器(mode=”time”)和市区选择器(mode=”regin”),默认为普通选择器。

例子:爱好选择

<!-- index.wxml中的 -->
<picker range="{{array}}" value="{{index}}" bindchange="pickerChange"><view>你的爱好是:(点我选择){{array[index]}}</view>
</picker>// index.js中的代码
const app = getApp()
Page({data:{array:['跑步','唱歌','打篮球','跳舞'],index:1},pickerChange:function(e){this.setData({index:e.detail.value})}
})

微信小程序——部分知识点复习相关推荐

  1. 微信小程序开发知识点总结

    微信小程序开发知识点总结 微信小程序的目录结构 1.外联公共样式的方法 根据微信的官方文档,是支持@import的方式一如外联的公共样式的 使用@import语句可以导入外联样式表,@import后跟 ...

  2. api 定位 微信小程序 精度_微信小程序开发知识点集锦

    一 小程序的生命周期 代码生命周期就是一个对象的生老病死,通常指程序从创建.开始.暂停.唤起.停止.卸载的过程.小程序的生命周期又可分为应用生命周期和页面的生命周期,先单独分析,在结合两者分析 应用生 ...

  3. 微信小程序相关知识点和云音乐项目制作遇到的问题及解决

    小程序项目想下载项目的可以下载看看~ 下载地址 github地址: https://github.com/superBiuBiuMan/Wechat_NetEase_CloudMusic gitee地 ...

  4. 微信小程序+uni-app知识点总结

    微信小程序知识点合集 1. 小程序的优势和劣势有哪些? 优势: (1)容易推广.在微信中,小程序拥有众多入口,例如附近的小程序.小程序码.分享. 发现-小程序等五十多个的入口,这些都有助于推广小程序: ...

  5. 微信小程序一些知识点

    转载自:https://www.jianshu.com/p/f8f85757e90d 配置文件.json: 小程序的全局配置app.json和页面配置page.json 每单页页面也有相应的.json ...

  6. 微信小程序开发知识点

    /*** pages页面组成* -- .js..json..wxml..wxss* * app.json: 全局配置* * WXML: 小程序的标签语言,用来构建小程序的UI结构,类似于HTML但是和 ...

  7. 微信小程序部分知识点总结

    微信小程序主要目录和文件的作用? project.config.json:项目配置文件,用的最多的就是配置是否开启https校验 App.js:设置一些全局的基础数据等 App.json:底部tab, ...

  8. 微信小程序常见知识点总结

    目录 1.小程序中如何进行接口请求?会不会跨域,为什么 2.小程序的常用命令有哪些 3.你认为微信小程序的优点是什么,缺点是什么 4.微信小程序中的js和浏览器中和node中的区别 5.微信小程序中的 ...

  9. 微信小程序入门知识点

    1.在wxml中只有用text标签包裹的文本才能在手机上长按选中 2.小程序的自适应单位是rpx,一般情况下不要使用px 3.每一个页面都是一个文件夹,下面的wxml.wxss.json.js文件最好 ...

最新文章

  1. 第一章1.1 回顾CMOS的一些知识
  2. 经典C语言程序100例之十二
  3. 嵩天python爬虫_我自己爬-python爬虫快速入门(一)
  4. 车辆贷款违约预测 Top1(2021科大讯飞)
  5. python做excel自动化-用Python控制Excel实现自动化办公,手把手教你
  6. mysql修改表编码为ytf8_如何修复“TypeError:x和y必须具有相同的数据类型,got”tf.uint8型!= tf.float32型“当我试图以十为单位调整图像大小时...
  7. 阿里云 网站https设置 sll申请与nginx跳转配置
  8. Hbase 操作工具类
  9. TDengine C/C++ Connector
  10. OMG: daily scrum nine
  11. 挂机平台android,红手指手游挂机平台
  12. 运维自动导出业务容器Java堆栈错误日志脚本
  13. DTCloud编码规范
  14. hosts文件位置在哪里
  15. 【转】那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程
  16. Flex入门基础——项目item的属性(order、flex-grow、flex-shrink、flex-basis、flex、align-self)
  17. 2022软件测试工程师的简历怎么写?
  18. 算法是怎样一步步毁掉年轻人的世界的
  19. mathcad使用小结
  20. 迅为RK3568开发板实现的NVR/XVR方案

热门文章

  1. 怎么提高计算机编程能力,提高程序员技能的11招编程技巧
  2. 爬虫小项目(四)利用多进程和ajax技术爬取堆糖
  3. 【ASP.Net MVC3 】使用Moq让单元测试变得更简单
  4. bt5虚拟机安装tl-wn722n无线网卡驱动
  5. 从零开始仿真ROS小车(二)在gazebo中显示小车模型
  6. windows server 2008防火墙阻止局域网不能访问解决方案
  7. 遍历 HashMap 的 5 种方式总结
  8. Canvas drawText字体居中
  9. 在腾讯创业节第一次遇见神州顺利办,让我有了共鸣
  10. 按键精灵 python程序互通_ERLANG和PYTHON互通实现过程详解