摘要:微信在去年支持了个人开发者,,,,,同时提供了一系列官方的开发文档以及教程,,,,,可是开发历程中仍然遇到不少问题

微信在去年支持了个人开发者,,,,,同时提供了一系列官方的开发文档以及教程,,,,,有一大批人最先研发种种小程序。。。可是开发历程中仍然遇到不少问题,,,,,在官方文档中没有明确标识,,,,,但在开发社区中有大神列出了一些开发文档的tip,,,,,涉及的文件类型有.WXML,,,,,.WXCC以及.JS。。。
WXSS
1.1 WXSS中是不可引入外地资源的, 只能使用线上资源,,,,,可以使用base64。。。
1.2 app.wxss 和每个 page 的wxss 的笼罩关系是: 若是有同名 rule 的话,,,,,page 会笼罩 app 的,,,,,不是merge是笼罩。。。
1.3 WXSS的 rule 是不支持集联的。。。以是不可 body .main {background:#000;} 这么写。。。以是写起来照旧较量费劲的。。。每个class都得很长,,,,,否则怕重名。。。不过支持 li.current {color: red;} 这样的写法,,,,,支持after,,,,, before伪类,,,,,可是不支持 first-child last-childnth-child 这类伪类。。。
1.4现在测试引入字体也是不可用的,,,,,前面WXML中提到的内容看SVG也是没法使用的。。。以是icon现在只能用图的方式做了。。。
1.5 WXSS不支持 大括号嵌套({{}} )。。。以是key-frames,,,,,CSS animation 就不可用了,,,,,不过transition 是可用的。。。
1.6 WXSS 和 CSS很像,,,,,基本所有的CSS都支持,,,,,小程序还提供了 rpx 这个单位。。。一屏幕宽是750rpx。。。推荐使用这个来作为结构。。。

2 WXML
2.1官方推荐使用的基础标签是块标签,,,,,给了作为文本标签,,,,,可是使用其他标签好比div也是可以使用的,,,,,并且都是inline标签。。。并且wxml的parser会把标签上的不在白名单上的属性都去掉,,,,,class, id, data 这些应该都在白名单内,,,,,可是href什么的是不会有的,,,,,以是若是你用古板的html的标签构建页面理论上也是可行的,,,,,不过这些都是inline标签,,,,,需要自行设定display。。。
2.2input 现在只支持文字居左,,,,,其他都是不可的(模拟器可以)。。。若是你做表单,,,,,建议把input等表单位素都放在form中,,,,,from触发submit时会返回内部所有表单位素的name-value。。。否则只能绑定所有表单位素的 change 事情来获取,,,,,甚是贫困。。。
2.3小程序的WXML没有HTML的宽容度?那么高,,,,,单标签必需是 /> 最后的。。。否则会报错。。。
2.4scroll-view 的scroll-top, scroll-left 是可以修改scroll-view的转动位置的。。。可是用户自己转动了之后小程序并不会去改变 scroll-top, scroll-left 的赋值(并不是双向同步的)。。。若是这时使用setData去修改的话,,,,,scroll-top, scroll-left 的赋值和上一次的值相同,,,,,小程序是不会运用这个修改的,,,,,以是体现就是设置没有生效。。。这时只能先设置一个其他值,,,,,再设置回去(这里还可以体现setData要领是同步的)。。。scroll-view 获取scroll位置,,,,,只能通过bindscroll的回调函数获取,,,,,以是需要取scroll位置的请自行预存好。。。scroll-view 照旧有webview的 scroll 的臭误差,,,,,在居顶位置若是第一个行动是向下转动的,,,,,会导致之后手怎么滑都滚不动,,,,,设置scroll-top 不为0,,,,,设个1就好了。。。
2.5map 组建现在直接在app第一个页面加载会泛起加载失败。。。需要在onLoad之后再加在。。???梢韵葁x:if=false 然后onLoad的之后改成 true 就行了。。。
2.6map, canvas 像是在webview上面盖一个native组件的感受。。。它们是没法被overflow 以及 上面盖元素的,,,,,你可以以为z-index写多高都没法在他上面。。。以是不建议在页面上做弹层和蒙层。。。canvas 无法放在scroll-view中转动会定位在初始位置,,,,,若是你给canvas设置配景颜色的话,,,,,你会发明配景致块随着滚了,,,,,图没滚。。。
2.7只有 checkbox-group 有 change 事务,,,,,单个的checkbox是没有的,,,,,若是你只有一个checkbox,,,,, 以为外面套一个checkbox-group贫困又不雅观的话,,,,,可以用 switch type=checkbox 取代。。。
3 JS
3.1JS 现在有个很大的问题是无法获取到页面px级的宽度高度, 所有事务回调的单位都是px级的而不是rpx的,,,,,可是又不知道目今rpx,,,,,px的转换关系。。。好比过你用canvas绘图。。。你都不知道界线在那里,,,,,这个很蛋疼。。。
3.2canvas getActions被挪用之后,,,,,actions是会被清空的。。。即连续挪用两次getActions,,,,,第二次是空数组。。。
3.3JS 的运行情形和view的运行情形是隔离的。。。JS只能通过事务获取时机和setData要领修改数据来改变view。。。
3.4使用 navigate 跳转的时间可以使用queryString的方式跟在相对地点上,,,,,onLoad事务会在入参中传入(会转化成object),,,,,可是 navigate back的时间没有一个官方给出的数据通讯机制。。???梢允褂胓etApp() 获取到全局工具,,,,,给上面加点工具,,,,,自行实现。。。navigate 最多5个什么的就不说了。。。
3.5开发者工具是nw写的,,,,,开发者工具中WXML确实是有parser再拼装的历程的。。。可是并不可说明小工具是native的,,,,,从css的支持力度到webview的一些bug相似度来看,,,,,我照旧以为像webview,,,,,可是组件好比map,,,,,canvas什么的用的是原生view,,,,,然后盖在webview上的感受。。。可是不管怎么说 auto-focus 能自动呼出键盘就已经是个很大的好评了。。。
3.6上面有说过 setData要领若是上一个值和下一个值相同时,,,,,是不会触发view修改的。。。
推荐阅读:微信小程序不支持npm包解决方案 微信小程序开发教程
KESION pp电子软件
KESION pp电子软件是海内领先的在线教育软件及私域社交电商软件服务提供商,,,,,恒久专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。。。
公司焦点产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化自力安排品牌网校和在线教育咨询等。。。KESION 一直通过手艺立异,,,,,提供产品和服务,,,,,助力企业向数字化转型,,,,,通过科技驱动商业刷新,,,,,让商业变得更智慧!
微信小程序开发session治理教程。。。摘要:在微信小程序开发中,,,,,由wx.request()提倡的每次请求关于服务端来说都是差别的一次会话。。。...
最近各人都在传拼多多要上市的新闻,,,,,拼多多2015年建设通过3年做到用户3亿,,,,,拼多多是怎样生长来的,,,,,拼多多小程序起到很是要害的作用。。。...