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

小程序开发中的那些坑

前言

最近小程序特别火,不用安装,即开即用,用完就走。省流量,省安装时间等等优势吸引了大量用户,几乎所有大厂的APP都有小程序版本。我厂也有开发,所以我也加入了开发小程序的队伍,开发中的那些注意点和各位小伙伴们分享下。

一.css伪类看不到

在微信开发者工具中,Styles不会显示css伪类,喜欢写::before或:first-child的小伙伴们请注意了,你的伪类在控制台是看不到的。

建议不要在公共css文件夹下写伪类,本妹子就遇到过这个坑,某小伙伴在公共css上写了按钮的after加了个边框样式,找了好久才找到这个边框写在哪。

 button::after {
       border: 2rpx solid #000;  
 }

after.png

二.https

小程序的图片只支持https://...的URL,后台接口不能传//或http://,否则有些安卓机会不兼容

在微信开发者工具中,可勾选"不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书"规则即可用http,但是在实体里并没有这个选项,所以建议开发时就用https路径。

https.png

三.不要换行写,有空格不行

微信开发者工具不会对代码进行trim操作,如果代码中换行,页面也直接换行。

wrap.png

四.部分CSS3属性不能用

如transform:rotate(180deg),不能用。

五.Git 状态展示

project.config.json和.git需要在同层目录,Git 状态才能显示,所以project.config.json最好放在根目录中

git.jpg

六.页面跳转

wx.navigateTo 新窗口打开页面 新页面有返回按钮

wx.redirectTo 关闭当前页面,跳转到应用内的某个页面 新页面没有返回按钮

七.IDE更换

微信开发者工具有很多快捷键都不能用,对于很多熟悉其他IDE的前端开发者来说很不习惯。
可以隐藏编辑器或分开窗口,把微信开发者工具只当作浏览器,然后然后小伙伴们就可以用自己熟悉的IDE了。

IDE.png

八.分享事件不支持同步

如果你想自定义分享图片,则在生命周期onShareAppMessage中编写如下所示:

Page({
  onShareAppMessage: function (res) {
    return {
      title: '自定义转发标题',
      imageUrl: 'https://raoenhui.github.io/images/logo.png'
    }
  }
})

但是onShareAppMessage不能支持异步,如果你想从接口里获取分享图片URL,必须在onLoad提前读取并放入Data中

原文地址为:https://raoenhui.github.io/wechat/2018/07/18/%E5%B0%8F%E7%A8%8B%E5%BA%8F

参考资料

  • https://developers.weixin.qq.com/miniprogram/dev/api

Happy coding .. :)

相关文章:

  • Intellij idea 快捷键持续更新
  • 常用加密算法概述
  • CSS基础2-盒子模型、定位、浮动
  • 集群架构(1)
  • python全栈开发 * background 定位 z-index * 180813
  • Prism中命令可用性无法自动刷新
  • shell入门基础常见命令及用法
  • 高可用,高并发
  • SqlServer日期时间格式转换
  • Go to sleep
  • 【CSS】小妙招,各种问题总结方法处理
  • exception ORA-00923: FROM keyword not found where expected
  • windows2003开了远程却连不上
  • Running Median
  • Java中getResourceAsStream的用法
  • Laravel 中的一个后期静态绑定
  • Map集合、散列表、红黑树介绍
  • nodejs调试方法
  • Spring Boot MyBatis配置多种数据库
  • VUE es6技巧写法(持续更新中~~~)
  • WePY 在小程序性能调优上做出的探究
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 手写双向链表LinkedList的几个常用功能
  • 我这样减少了26.5M Java内存!
  • 正则与JS中的正则
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (6)添加vue-cookie
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C++17) std算法之执行策略 execution
  • (Java数据结构)ArrayList
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (推荐)叮当——中文语音对话机器人
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转载)Linux 多线程条件变量同步
  • **PHP二维数组遍历时同时赋值
  • *上位机的定义
  • .cfg\.dat\.mak(持续补充)
  • .Net mvc总结
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • /proc/vmstat 详解
  • ::前边啥也没有
  • [@Controller]4 详解@ModelAttribute
  • [20150321]索引空块的问题.txt
  • [acm算法学习] 后缀数组SA
  • [AIGC] 开源流程引擎哪个好,如何选型?