前言:

微信小程序最近刚从鹅厂生产出来,我有幸参与了一次小程序的实战,有必要记录我的开发过程。看上去小程序很简单,但是在深入开发的时候才能具体体会里面的变化,接下来记录我的第一个微信小程序的点点滴滴!

想做微信小程序就要先了解微信官方给出的API:https://mp.weixin.qq.com/debug/wxadoc/dev/?t=20161122

编译工具:

我用的是微信官方提供的工具:这个工具是用react.js开发出来的,对于会react.js的开发来说很容易看懂它的代码结构,并且能了解到小程序内部一些实现规范和方式。

HTML:

小程序封装了一套自己的HTML定义wxml,因为建立在自己平台对html中特有属性都没了,

比方说:<p>标签 :

在传统浏览器上是p标签默认宽度100%的,但是在微信小程序中这个默认属性就变了。

另外小程序自己封装了一些HTML组件,能帮我我们快速实现前端UI交互,这个是小程序的关键点,没有这些组件就没有办法做到敏捷开发,快速迭代。

小程序重新梳理了html标签规范必定去掉了标签默认数据,我猜测腾讯前端人员可能认为这些默认的属性会很大程度上影响页面布局,干脆就却掉,在复杂场景下,我用很多html标签编写页面,就会因为这些标签自带一些属性而进行不同场景的处理,确实是一件烦事。这些我很欣赏小程序,如果想布局就自己加属性进去而不是默认属性给了又要去修改。

CSS:

除此之外对css中的伪类选择器也不支持。

官方原话:为了适应广大的前端开发者,我们的 WXSS 具有 CSS 大部分特性。

height:

其中对height设置100%一开始很疑惑,但是想一想通了,

先看代码:

<div>
<span style="height:100%;"></span>
</div>

如代码缩写,在传统浏览器开发页面中如果设置了height是100%会针对其父节点高度来计算,而在微信小程序里面是不管父子级关系的,如果一个子节点设置了height:100%;页面显示元素直接拉长。

正常显示应该是如下图:

对比可以看出直接看出已经无法自动控制了,所以100%;这个值在微信小程序里看来不能随便用了!

!important这个我实验了一下效果可以的,这样我们可以对样式做优先级调整了。

 position:

在传统浏览器端position: relative;之后,子节点设置了position: absolute;也不会飘出父节点范围,而在小程序中这点就完全无效了,子节点改怎么飞就怎么飞,无法控制,习惯了这样的方式对于现在小程序场景有些不习惯。想要控制子节点在小程序里面做法是在父节点上再加上一个float:left;这样子节点就乖乖的在父节点范围了!

页面跳转数:

微信小程序对于页面跳转所积累的页面数量做了限制,小程序提供了3种跳转方式:wx.navigateTo、wx.redirectTo、wx.navigateBack,不善于合理的运用,当页面数累计到5个时候就再操作任何跳转就会失灵。

在微信小程序开发工具中提示你所积攒的页面数,这个是个很好的提示,但是怎么避免页面累积呢?

1、这个就需要产品设计场景不要过多的新的跳转,不然最后会不可控。

2、父子级关系页面,在跳转到子页面我们可以用wx.navigateTo,注意一点子跳转到父页面一定要用wx.navigateBack,其他形式跳转会增加页面数。

获取缓存:

小程序提供了3种状态处理缓存机制,1.设置缓存  2获取缓存  3清空缓存

我在用小程序的缓存时候碰到2个点有必要记录下来,

第一个:object类型数据问题

缓存已key,value键值对存在的,我想设置一个key 并且值为object类型,一开始设置一切正常,但是再使用场景需要改变object中的某个属性的时候,结果其他属性全部没了,只留最新设置的属性存在object中,顿时蛋疼了!

微信小程序实战笔记的更多相关文章

  1. [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)

    本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类  —— 微信小程序实战商城 ...

  2. [转]微信小程序之购物数量加减 —— 微信小程序实战商城系列(3)

    本文转自:http://blog.csdn.net/michael_ouyang/article/details/70194144 我们在购买宝贝的时候,购物的数量,经常是我们需要使用的,如下所示: ...

  3. [转]微信小程序之加载更多(分页加载)实例 —— 微信小程序实战系列(2)

    本文转自;http://blog.csdn.net/michael_ouyang/article/details/56846185 loadmore 加载更多(分页加载) 当用户打开一个页面时,假设后 ...

  4. 【微信小程序】转载:微信小程序实战篇-下拉刷新与加载更多

    下拉刷新 实现下拉刷新目前能想到的有两种方式 1. 调用系统的API,系统有提供下拉刷新的API接口 当然,你可以直接在全局变量app.json的window里面配置上面这个属性,这样整个项目都允许下 ...

  5. 微信小程序实战篇:商品属性联动选择(案例)

    本期的微信小程序实战篇来做一个电商网站经常用到的-商品属性联动选择的效果,素材参考了一点点奶茶. 效果演示:   商品属性联动.gif 代码示例 1.commodity.xml <!-- < ...

  6. 微信小程序实战 购物车功能

    代码地址如下:http://www.demodashi.com/demo/12400.html 一.准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.com/ ...

  7. 微信小程序实战之天气预报

    原文:微信小程序实战之天气预报 这个案例是仿UC中天气界面做的中间也有点出入,预留了显示当前城市名字和刷新图标的位置,自己可以写下,也可以添加搜索城市.值得注意的是100%这个设置好像已经不好使了,可 ...

  8. 微信小程序实战之百思不得姐精简版

    原文:微信小程序实战之百思不得姐精简版 微信小程序基本组件和API已撸完,总归要回到正题的,花了大半天时间做了个精简版的百思不得姐,包括段子,图片,音频,视频,四个模块.这篇就带着大家简述下这个小的A ...

  9. 微信小程序练习笔记(更新中。。。)

    微信小程序练习笔记 微信小程序的练习笔记,用来整理思路的,文档持续更新中... 案例一:实现行的删除和增加操作  test.js // 当我们在特定方法中创建对象或者定义变量给与初始值的时候,它是局部 ...

随机推荐

  1. Django Restful Framework (一): Serializer

    Serializer 允许复杂数据(比如 querysets 和 model 实例)转换成python数据类型,然后可以更容易的转换成 json 或 xml 等.同时,Serializer也提供了反序 ...

  2. Qt - 读取GPS数据

    1.GPS型号为ublox(EVK-M8L),配有USB接口,Qt版本5.7 2.实现步骤: (1)实现串口通信 采用Qt5.7 内置的串口操作类QSerialPort和QSerialPortInfo ...

  3. kernel 4.4.12 EETI eGTouch 电容屏驱动移植

    kernel 4.4.12 EETI eGTouch 电容屏驱动移植: 在make menuconfig 里面添加如下选项: 添加通过事件上报接口节点: Device Drivers ---> ...

  4. angular路由详解:

    1.$routeProvider ngRoute模块中的服务 2.otherwise:设置用于路由改变时,与任何其他定义的路由无法匹配的时候执行的代码 3.when:为$route服务定义新的路由 例 ...

  5. typeScence

  6. Java异常体系及分类

    上图是基本的java异常体系结构. 主要分为2大类:Error和Exception 1.Error:描述了Java运行系统中的内部错误以及资源耗尽的情形.应用程序不应该抛出这种类型的对象,一般是由虚拟 ...

  7. HTML页面如何判断是手机访问还是电脑访问

    可以通过js来判断访问设备,代码如下: <script type="text/javascript"> var system ={}; var p = navigato ...

  8. 463. Island Perimeter

    https://leetcode.com/problems/island-perimeter/ 在一个N×N的矩阵中,N<100,1代表岛,0代表海,岛内没有海,求岛的周长 [[0,1,0,0] ...

  9. 阿里云部署多个tomcat

    转载自:http://www.cnblogs.com/lhj588/p/3805268.html 同时支持windows阿里云服务器 部署前准备: 1.到阿里云官网购买一台服务器 2.给阿里云服务器挂 ...

  10. tomcat端口被占用问题完美解决方案!

    启动Tomcat服务器报错:Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are alrea ...