前言:

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

想做微信小程序就要先了解微信官方给出的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. 【bzoj4721】[Noip2016]蚯蚓

    题目描述 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓.蛐 ...

  2. (转载) 利用国内的镜像,加速PIP下载

    国内源: 新版ubuntu要求使用https源,要注意. 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.c ...

  3. Angular.js中使用$watch监听模型变化

    $watch简单使用 $watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你. $watch(watchExpression, listener, objectEqua ...

  4. cf591d

    题意:给出船的最大速度v,起点,终点.风在前t秒是一个方向,t秒后就一直是第二个方向.两个方向已知. 船速永远大于风速.问船在自由掌握速度和行驶方向的情况下,最快多久到终点. 分析:首先排除一种方法, ...

  5. The difference between QA, QC, and Test Engineering

    Tuesday, March 06, 2007 Posted by Allen Hutchison, Engineering Manager and Jay Han, Software Enginee ...

  6. 463. Island Perimeter

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

  7. ABAP READ TABLE语句注意

    READ TABLE 后注意判断 sy-subrc 是否等于0

  8. [java]OutOfMemoryError 原因及解决办法

    导致OutOfMemoryError异常的常见原因有以下几种: 内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 代码中存在死循环 ...

  9. ember.js路由无效的解决思路

    进入今天的问题,就是route ember中就一个html,单页面程序(spa),所以页面的跳转,也可以叫做页面的路由,其实就是在这一个html中,不断的进行html的插入和删除了(个人理解) emb ...

  10. 利用html5、websocket和opencv实现人脸检测

    最近学习人脸识别相关的东西,在MFC下使用OpenCV做了一个简单的应用.训练需要较多的数据,windows应用程序终究还是不方便,于是想着做成CS模式:检测识别都放在服务器端,视频获取和显示都放在网 ...