mui初级入门教程(一)— 小白入手mui的学习路线
文章来源:小青年原创
发布时间:2016-05-15
关键词:mui,html5+
转载需标注本文原始地址:http://zhaomenghuan.github.io/#!/blog/20160515
写在前面
相信很多朋友初次接触到dcloud
这边的产品,一般都是hbuilder
和mui
,所以很多朋友对于dcloud
这边的产品链的认识也是各不相同。我相信对于很多新手来说,初次使用dcloud
这边的产品的第一感觉一定是觉得这个东西很好却无从下手,然后被一些新的概念转得云里雾里,然后就开始吐槽官方文档,其实真的是文档不好吗?
稍微有点基础的开发者可能仔细去看看官方文档,然后就可以自己跟着文档或者demo
做点小例子,然而很多人由于是业务临时需要才转到跨平台app
开发的,很多可以说零基础,即使有文档也不定会看得懂,或者看了更晕,相信这部分开发者最期待的是有人手把手教最好,我见过很多开发者一上来一言不合就要例子,如果你让他去看hello mui
,hello h5+
这两个最精华的例子,他也许会觉得你在逗他。
其实这是因为我们很多时候把精力搞分散了,没有把力量集中起来去逐个突破,所以导致看起来感觉到处是肉,啃起来到处是骨头。哈哈,说了这么多,你可能觉得是废话,你也可能觉得说到你心理去了,如果你对dcloud
这边的产品还是有点不明不白,那希望你耐心看下面的分析,也请你等待我后续的基础教程。
资源索引
先把几个常用的地址丢出来,因为你如果不想看我后面的,你直接去看这些也可以!
新手值得收藏的地址
Dcloud官网:http://dcloud.io/
Dcloud问答社区:http://ask.dcloud.net.cn/
Dcloud文档汇总地址:http://ask.dcloud.net.cn/docs/
Hello mui线上演示地址:http://www.dcloud.io/hellomui/index.html
Hello mui演示APP下载地址:
Hello 5+演示APP下载地址:
官方入门文档(强烈推荐阅读):
github地址:https://github.com/dcloudio/
官方分类文档
html5+官网文档:http://www.html5plus.org/doc/
5+ App开发Native.js入门指南:http://ask.dcloud.net.cn/article/88
Native.js示例汇总:http://ask.dcloud.net.cn/article/114
其他学习资源
学习路线
当我列出上面的这些网址,我发现其实文档并不算少,但是新手为啥感觉还是很难呢?我们会发现一个问题,官方文档很分散,或许分散了导致开发者每次遇到问题查找文档的范围可能或许片面,其实也许他把所有的看完了就会找到答案,但是一般人恐怕没那么耐心吧,还有新手根本就没有一个清晰的思路,所以很难快速去找到自己需要的文档,所以我想官方文档需要统一化具体化。
而且把这些大致浏览一下会发现内容真多,光html5+
里面的标准就那么多,一个个去认真学习完到猴年马月去了,mui
组件也那么多,难道也要一个个学习?还有native.js
、流应用等等,感觉太多东西了,是不是瞬间觉得头大了,哈哈,人总是有点偷懒的,如果有人帮我们写好现成的我们直接用那就好了,于是dcloud
这块想了很多办法让开发者去开心开发,hbuilder
丰富的语法提示、代码快捷键、真机调试、演示demo
等等,mui
提供了丰富的组件,如果熟悉这些,开发起来还是很快的。
前提是熟悉了以后才会爽,如果不熟会感觉什么,学的东西太多,比如熟悉hbuilder
都要一段时间,然后熟悉html5+
,native.js
,页面布局和写逻辑功能,对于新手来说,门坎儿并不小,这也是为啥很多新手喜欢吐槽的原因。因为当开发者熟悉了基本流程,会发现dcloud
这边相对其他平台来说更开放,个人可定制空间更大,正因为越发开放,那么可以应用的场景更加广泛,自然开发者问题更多,这也希望有能力的开发者能够去完善整个开发生态链。
这里给各位的建议是先熟悉html5+
的常用api
,比如webview
,你只有对html5+
里面的webview
有所了解,才能理解为什么mui
里面会去封装一些原生实现的组件如双webview
的上拉刷新,tabbar
多子页面底部导航等。mui里面的这些组件通过对html5+ webview
的封装,极大的提升了app
的性能。由于用hbuilder
打包的app
默认包含html5+ rumtime
,所以当你使用hbuilder
构建app
项目时候,无论你是否引用mui
文件,无需引用任何其他文件,你都可以调用html5+ api
和native.js
。也就是说即使你不用mui
,只用html5+
提供的api
,然后自己书写html
,css
,js
文件就可以打包生成一个app
。
当然考虑到大部分人时间精力有限,为了让开发者有较快的开发速度,官方提供了mui
框架,mui
框架拥有丰富的组件,可以极大的提高开发效率。根据hello mui
演示app
提供的demo
,开发者可以快速构建一个自己的app。
mui
是基于html5+
构建的框架,所以对于mui
中提供的原生组件,其适用环境是app
中的原生组件webview
,并不能在浏览器中运行,如果想用mui
构建浏览器上的手机站点,只能使用mui
中基于h5
的组件。对于原生实现的组件,mui
都有对应的h5
实现,所以开发者可以做合理的处理,在书写较少代码的情况下,实现多端发布。
流应用是dcloud
这边很有创新的一个产品,流应用基于HTML5+
技术,可达到原生应用的体验。同时基于DCloud
专利的流式发行和更新技术,可以大幅压缩安装包并实现边下边用。让App可5秒内完成下载、启动。目前拥有6亿手机用户的360手机助手已经集成了DCloud
的流应用引擎,可以发行流应用。建议对dcloud
的产品有个大致了解后再实践这块的内容。
所以我给新手的学习路线是hbuilder = > html5+ = > mui = > 多端发布和流应用,当熟悉了这边的产品链以后开发起来会快很多,像hbuilder
,html5+
开始可以简单看看,了解基本的东西就可以。用mui
的话至少得有基本的前端基础吧,再怎么样也得会基本的css
布局和js
基础吧,如果没有这些基础,先花点时间学一下基础或许更好。不要相信那种什么从零开始一周开发app
的广告词,没有基础,也很难说做一个体验极好的app
。
如果有原生开发经验的开发者一定会理解java
在android
中或者Objective-C
在ios
中的地位,做跨平台app
开发,其实主要还是在于js
功底,特别是原生js
水平,所以如果js
基础一般的开发者还是要不断加强学习,这里给的建议跟着hello mui
里面的例子学,看官方人员是怎么写的,自己学着写,然后也可以在业余时间去研究一下基础。相信假以时日,你会发现你的js
水平也会不断提高。
学习疑惑解答
html5+是什么?
html5+
是DCloud
提供的html5
强化引擎,可以把HTML5 App
打包为原生App
,并且达到原生的功能和体验。说白了就是原本只能原生APP
才能实现的功能,现在可以通过html5+
这个强化引擎作为桥梁,你通过调用plus.*
方法实现,也就是你可以通过书写js代码实现android和ios两套的原生功能。html5+
封装了一些最常用的功能,并向W3C
提交了作为标准的提案,具体的可以参考html5+规范API。
html5+和native.js有什么区别?
html5+
作为一种通用标准,只封装了最常用的一些API
,如果你有其他需求但是5+里面没有怎么办,这个时候如果你懂原生应用开发,你可以基于native.js
语法规范进行个性化封装。Native.js for Android
封装一条通过JS
语法直接调用Native Java
接口通道,通过plus.android
可调用几乎所有的系统API
。Native.js for iOS
封装一条通过JS
语法直接调用Native Objective-C
接口通道,通过plus.ios
可调用几乎所有的系统API
。
5+ sdk是什么?
我们经常看到html5+
(即html5plus
)、5+ sdk
,其实本质是一样的,不过这里的5+ sdk是针对离线打包开发和Hybrid
开发模式,因为用hbuilder
在线打包,html5+
和native.js
的底层会被自动打包到安装包里面,开发者无需引用什么即可调用相关API。只要当开发者想要离线打包及Hybrid
开发模式或者深入了解html5+
的引擎实现原理,才需要去了解一下5+ sdk
,一般情况下我们只需要知道5+标准里面的基本用法就足够我们开发出一个APP
。
mui与html5+有什么关系?
mui
是Dcloud
官方推出的一个基于html5+
标准的框架,同时拥有h
5组件和原生组件,原生组件依赖于html5+
运行环境,也就是原生app
里面的webview
组件(能加载显示网页,可以将其视为一个浏览器),所以mui
里面的原生组件不能用于浏览器环境,可以通过mui
里面的mui.os.plus
进行判断,如果是plus
环境会返回true
,否则会返回undefined
。开发者可以根据自己的需要进行代码适配,对于APP
使用增强的原生组件,对于普通浏览器里面运行的页面使用h5
组件。同时用户还可以使用mui.os.android
、mui.os.ios
及mui.os.wechat
对平台进行检测,然后书写不同的逻辑代码。对于mui
里面没有封装的原生组件,大家可以根据自己的需要基于html5+
标准和native.js
语法进行个性化定制。因此这里我们可以有一个基本影响就是我们开始可以直接上手mui
,不过需要明白mui
与其他UI
框架的区别在于,mui
拥有独有的原生组件,而且这个是依赖于html5+
标准的,所以mui
里面的很多组件实现方法甚至用户就是html5+
里面的标准写法,对html5+
标准有一定了解有助于我们理解mui
的一些使用方法。
后记
本文没有给出任何实际代码,只是根据很多朋友的一些疑惑谈了谈自己的看法,所以不一定很全面,大家可以参考官方文档去详细了解细节。从今天开始我会写一个mui的系列教程。在此承诺,每周至少会保证更新一篇文章。如果有朋友有与之相关的优秀学习资源可以给我推荐,联系邮箱:zhaomenghuan@foxmail.com
。
文章原始地址是我博客地址:
MUI小白文档地址:
mui初级入门教程(一)— 小白入手mui的学习路线的更多相关文章
- mui初级入门教程(四)— 再谈webview,从小白变“大神”!
文章来源:小青年原创发布时间:2016-06-05关键词:mui,html5+,webview转载需标注本文原始地址: http://zhaomenghuan.github.io/#!/blog/20 ...
- mui初级入门教程(六)— 模板页面实现原理及多端适配指南
文章来源:小青年原创发布时间:2016-07-26关键词:mui,webview,template,os,多端适配转载需标注本文原始地址: http://zhaomenghuan.github.io. ...
- mui初级入门教程(三)— html5+ XMLHttpRequest 与mui ajax用法详解
文章来源:小青年原创发布时间:2016-05-29关键词:mui,html5+,XMLHttpRequest,ajax,懒加载转载需标注本文原始地址: http://zhaomenghuan.gith ...
- mui初级入门教程(五)— 聊聊即时通讯(IM),基于环信 web im SDK
文章来源:小青年原创发布时间:2016-06-15关键词:mui,环信 web im,html5+,im,页面传值,缓存转载需标注本文原始地址: http://zhaomenghuan.github. ...
- mui初级入门教程(二)— html5+ webview 底部栏用法详解
文章来源:小青年原创发布时间:2016-05-19关键词:mui,html5+,webview转载需标注本文原始地址: http://zhaomenghuan.github.io/#!/blog/20 ...
- mui初级入门教程(七)— 基于native.js的文件系统管理功能实现
文章来源:小青年原创发布时间:2016-08-01关键词:mui,nativejs,android转载需标注本文原始地址: http://zhaomenghuan.github.io... 前言 这段 ...
- abp学习(四)——根据入门教程(aspnetMVC Web API进一步学习)
Introduction With AspNet MVC Web API EntityFramework and AngularJS 地址:https://aspnetboilerplate.com/ ...
- 2019最新WEB前端开发小白必看的学习路线(附学习视频教程)
2019最新WEB前端开发小白必看的学习路线(附学习视频教程).web前端自学之路:史上最全web学习路线,HTML5是万维网的核心语言,标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次 ...
- gitbook 入门教程之小白都能看懂的 Gitbook 插件开发全流程
什么是插件 Gitbook 插件是扩展 GitBook 功能(电子书和网站)的最佳方式. 只要是 Gitbook 默认没有提供的功能,基于插件机制都可以自行扩展,是插件让 Gitbook 变得更加强大 ...
随机推荐
- 练习2:python-把excel表格中某张表的内容导入sqlite
前言:最新需要用到大批量的数据,在excel造好数据之后,存储在数据库库中,方便调用数据,于是就想着用python语言写一下这个过程 python有个openpyxl的模块,可以直接用来对于excel ...
- EditPlus配色方案
找到配置文件:editplus_u.ini配置文件 [Options] Placement=2C00000002000000030000000083FFFF0083FFFFFFFFFFFFFFFFFF ...
- [Python3] 012 元组:list,我们不一样!
目录 0. 元组的独白 1. 元组的创建 2. 元组的特性 (1) 概述 (2) 少废话,上例子 1) 索引 2) 分片 3) 序列运算 4) 成员检测 3. 元组的遍历 (1) 简单总结 (2) 少 ...
- 数组方法之reduce实践
Array.prototype.reduce let arr = [1, 2, 3, 4], sum = arr.reduce((prev, curr, index, arr) => { ret ...
- 厉害了,Apache架构师们遵循的 30 条设计原则
作者:Srinath 翻译:贺卓凡,来源:公众号ImportSource Srinath通过不懈的努力最终总结出了30条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专门有个架构师团队或 ...
- 基本数据类型间的运算(不包括boolean)
一 基本数据类型的间的运算 (不包括boolean) 1.自动类型提升 : 小容量的变量和大容量的变量做运算结果用大容量的变量的类型来接收. byte , short , char -> in ...
- APMServ升级PHP至5.3
APMServ5.2.6 的php版本是php5.2.6,所以需要升级一下PHP版本:1.到 php下载地址下载PHP5.3的VC6版本的zip文件,我下载的是:php-5.3.23-Win32-VC ...
- ftp服务端
#coding=utf-8 import SocketServer import json import os class MyTcpHandler(SocketServer.BaseRequestH ...
- C# xml格式字符串,插入到数据库出现非法字符
在debug模式下快速监视看到的数据是完全正常的,即取到的是<xml>,但是把该字符串拷贝到UltraEdit中,取到的第一个字符是问号.使用正则表达式^[^<]进行替换,意思是把开 ...
- 好玩的Linux命令-1
Ag:比grep.ack更快的归递搜索文件内容 1:首先在linux创建个sh文件->ag.sh 2:在ag.sh里面输入如下内容并保存 #!/bin/bash set -x TEMP_DIR= ...