# 微信小程序 **Repository Path**: github-31301552/WeiXinXiaoChengXu ## Basic Information - **Project Name**: 微信小程序 - **Description**: 微信小程序/小游戏的搭建 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-01-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #微信小程序demo >前言:目前的基本构思 ``` 1、具有用户信息的用户页面 2、音乐模块,以及地图定位好友模块 3、游戏模块 ``` ##微信小知识 >列表渲染 ``` wx:for={{}} //用来指定当前数组的键名 wx:for-index //指定数组当前下标的变量名 wx:for-item //指定数组当前元素的变量名 ``` ##大家一起来采坑 - 面跳转中navigateTo指定的必须是tabbar中没有指定的link链接 >微信小程序中路由跳方式整合 ``` 1.app.json里tabBar里面的list使用的pagePath跟wx.navigateTo路径一样的话不起作用,实现不了跳转。 2.可以使用wx.switchTab和和wx.redirectTo来代替,但是有一定的不同; 3.wx.switchTab是唯一能跳转到 tabBar 页面,而wx.switchTab却只能设置tabBar相同的路径 4.wx.redirectTo关闭当前页面,用wx.navigateTo时,能用wx.navigateBack 5.wx.navigateTo能跳转下一页面还能有返回上一页面的功能 6、组件navigator方式; ``` - 使用fixed或者是absolute进行全局的屏幕的时候,你会发现,这个容器中的内容会呈现上下布局的方式(此问题目前为坑,也可能是自己的操作问题)
tips:出现这个问题的原因是容器中加上了container这个容器样式 - 在使用音乐组件的时候发现一个问题。其实wepy并没有完全是vue一些钩子函数的使用方法并不一样,下面我们来总结下wepy到底干了什么 - 类Vue的开发风格注意是"类" - 支持自定义组件的开发(这个听起来特别好用,有机会会去使用) - 支持Promise的方式 - 支持es5+的特性 - 可以使用less sass的编辑方式,确实是好用 - 请求队列,事件优化,现在还没有碰到过请求的问题,不做评论,事件倒是使用@tap进行触发器,有啥优化呢不清楚。。。 - 坑!不完全的双向数据绑定、动态渲染机制;在使用request记性数据的请求完成,data更改后,并不会主动的宠幸渲染,需要使用setData()方法,使用对象的方式将新值赋予给data - this.audioCtx = wx.createAudioContext('myAudio')// 必须要放在onLoad中否则娶不到元素 - 在使用wx:for的时候要注意需要加上上一个关键key值(wx:key="{{}}"), - 在wepy中的methods的方法和vue中的而不同,methods使用在wxml页面中声明的bing以及catch,自定义的方法应该写在和methods同级上 - 变化! 数据绑定的区别 - 原生小程序的数据绑定方式 this.setData ({ title: 'this is title' }) - *wepy中数据绑定的方式 直接在data中定义,然后在数据通讯的时候进行数据的变化,值得注意的是在进行异步更新通讯的时候需要手动调用 this.$apply() - 条件选择wx:if 、wx:elif以及wx:else使用禁忌;和vue基础得思想是一致的,但是当条件中包含多个标签的时候应该使用block的标签包裹起来 - is坑| 暂定为坑的animation 使用限制:animation在组件中使用会报错,提示animation不是一个函数 TypeError: this.animation.rotate is not a function - 使用小程序中的下拉刷新的功能的时候需要在config中配置enablePullDownRefresh:true;在官方issues的回复中受到启发,在组件封装中可以使用mixin和$broadcase(广播)进行操作 >canvas坑&知识 - 在使用canvas的时候发现两个问题一:使用微信提供的移动坐标,无法通过data绑定数据然后进行图片重新绘制,但是可以通过传递参数记性值的动态修改 二:之前看canvas 的时候发现重复绘制的额是偶需要将画布清空,但是game中如果没有清空,正常!? 目前先加,有问题再说 - canvas中是存在包含的层级关系的,标签的包裹是存在层级关系 - 遇到一个问题一个canvas中如何使用drawImage绘制多个具有独立属性的图片,这个思路是堵塞的,想着实例化每个创建的图像,但是好像不行,然后接触到requestAnimationFrame,进行帧动画的绘制,使得动画的渲染根据帧数动态变化(随之无法动态获取绘制的图片的位置,之后的碰撞检测也是无法进行下去)