昨晚临睡觉前,还在想应该给xx打个电话,问问微信应用号应该有原生 UI 吧,要否则跟直接跑 HTML 5 有什么区别?git
而今天一大早我便一本正经胡说八道猜测,微信小程序不会有 JS IDE ,一个小时以后,发现被打脸了,截图为证。github
在众多消息里,啃先生排除掉预测类的信息,汲取了对于技术从业者有用的信息,整理出此文章,说说「微信小程序」开发的设计理念和入门。编程
在文章的最后告诉你,即便没有进行内测名单,你也能够开发微信小程序。json
它是一个混合程序,因此即不是纯粹的 Native App ,也不是纯粹的 Web 应用。小程序
它是一个「封闭」的开发套件和框架,而不是「自由」的 JavaScript + CSS + HTML 。所以,你不能任性地使用 jQuery,zepto,更不能使用基于 jQuery 的第三方控件 ,也由不得开发者决定要用 Angular 仍是 React。微信小程序
它很像 Apple 开发者的范式,有开发者帐号,有 IDE ,有构建工具,有 UI 规范等等。微信
MVC架构,开发者不可直接操做 DOM 节点,页面根据数据的变化渲染 UI ,业务逻辑专一于数据操做。网络
「微信小程序」开发框架提供了 App 生命周期的管理,从打开一个微信小程序到离开过程是这样的:微信开发
所以在编程时,有如下必不可少的元素:架构
app.json 它是App的配置中心,目前知道的配置项有窗体外观「window」 ,菜单项及各项的外观「tabBar」,网络请求参数「networkTimeout」,以及页面「page」它配置此App包含哪些页面。
app.wxxs 这是App的公共样式,就是CSS
app.js 这是App的启动脚本,这里能够处理一些App启动过程当中页面加载以前要处理的事情。
页面 一个App可包含多个页面,页面的相对访问路径被配置在app.json里,每一个页面能够包含 [页面名].js、[页面名].wxml、[页面名].wxxs、以及配置文件 [页面名].json 。其中 wxxs 和 json 文件不是必须要的,若是有,那么它们会覆盖 app.json 和 app.wxxs 的相同配置项。
以上至少四个文件,便可生成一个最简单的微信小程序。
微信执行环境提供了全局的 App 实例,和 Page 实例,其中 app.js 主要是给 App 实例作配置,例如定义 onLaunch 方法,让 App 启动时,执行一些任务。
而页面的脚本例如 page1.js 则须要给 Page 实例作配置
微信小程序并不容许开发者直接操做页面 DOM 结点。
那么页面 UI 怎么更新呢?熟悉 React 的应该知道,React 组件根据 state 变化来渲染 UI,业务逻辑专一于数据处理,微信小程序开发框架也是如此。如下 page1.wxml 使了相似 jsx 的语法,它使用 page1.js 的data 属性进行渲染,而且当 data 改变时,自动完成 UI 更新。
微信提供了几个 API 用于路由控制
wx.navigateTo( Object ) 保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 能够返回到原页面
wx.redirectTo( Object ) 关闭当前页面,跳转到应用内某个页面
wx.navigateBack( ) 关闭当前页面,跳转到上一页
网络请求也不是使用 XHR 标准,微信提供了网络请求相关 API ,有以下接口
理论上来说,如下结论是正确的
是否支持 JavaScript ES6?不论是否支持,你可使用 ES6 进行编码,使用 Babel 构建出 ES5 ,而后再到微信开发者工具中构建出微信小程序
是否可使用 less 等预处理语言。wxxs 使用的是 CSS 语言,因此应该是能够的
HTML标签与微信的标签能够混着用,可是并非全部的标签均可用,好比a 标签的 href 属性是无效的,由于微信小程序只能在 app.json 里有配置的页面间跳转,而且使用路由 API 进行控制,不可任意跳。
掌握普通的 Web 开发,对开发微信小程序有没有帮助。思惟上有帮助,尤为是对于熟悉 React 开发框架的开发者。
以上,纯粹一本正经地纸上谈兵,最新消息显示,微信开发者工具已经被破解了,因此,如今你就能够开始开发微信小程序了,文章发布时还可用,小伙伴们尽快去下载安装,详见 Github 连接: https://github.com/login?retu...
最后不忘推介一下公众号,欢迎关注转发