前言:

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

想做微信小程序就要先了解微信官方给出的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. laravel强大功能路由初探(二)

    目标当然是先输出helloworld 配置hosts文件和apache下的httpd-vhosts.conf, hosts:127.0.0.1  www.blog.com httpd-vhosts.c ...

  2. ecshop后台新功能权限的添加

    1.在后台“推荐管理”里添加“推荐人分成”.“会员分成”两个操作功能以及权限    index.php?act=menu    incluedes/inc_priv.php:权限对照表.inc_men ...

  3. MySQL 备份与恢复

    一.备份/恢复策略 考虑因素有: (A) 表的存储引擎是否事务性的,在数据一致性方面不太一样. (B) 确定是全备份还是增量备份, (C) 考虑采取复制的方法做异地备份,复制不能代替备份 (D) 定期 ...

  4. Java实现比较版本号

    涉及到客户端的系统中经常需要用到比较版本号的功能,但是比较版本号又不能完全按照字符串比较的方式去用compareTo之类的方法: 这就需要我们总结版本号的通用规则,设计一个比较算法并封装成通用方法来使 ...

  5. java后台对前端输入的特殊字符进行转义

    转自:http://www.cnblogs.com/yangzhilong/p/5667165.html java后台对前端输入的特殊字符进行转义 HTML: 常见的帮助类有2个:一个是spring的 ...

  6. 原生js封装ajax:传json,str,excel文件上传表单提交

    由于项目中需要在提交ajax前设置header信息,jquery的ajax实现不了,我们自己封装几个常用的ajax方法. jQuery的ajax普通封装 var ajaxFn = function(u ...

  7. Swift 定义函数 参数 返回值

    定义多参数函数 - 用func声明函数  func name(parameters) -> return type { function body } func halfOpenRangeLen ...

  8. 【原创】threejs实现一个全景地球

    介绍 本demo实现一个旋转的全景地球,效果如下 技术分析 1.球体 2.球体表面贴图 实现 创建容器 <div id="container"></div> ...

  9. cxf WebService设置wsdl中soapAction的值

    用cxf开发一个WebService很简单,只需要下面几步: 1.定义接口 public interface HelloService { String hello(); } 2.实现 public ...

  10. tableview最后一行显示不全

    最后一行显示不全是因为表格的高度大于了控制view的高度,减小表格的高度小于的等于控制的view的高度即可