本文主要是讲解Uni-App开发技巧,如何快速的撸码?如何调试Uni-App?通过本文,让小伙伴们开发出优秀的Uni-App。
HBuilderX和VS Code、Sublime Text一样,都可以代码模板来快速生成代码。而HBuilderX代码块分为Tag代码块、JS代码块,如在 script 标签内输入 uShowToast
回车,会自动生成如下代码:
uni.showToast({
title: '',
mask: false
duration: 1500
});
在template模板中,输入uCheckbox
回车,会自动生成如下代码:
<label>
<checkbox :value="" /><text></text>
</label>
下面我们来看看有HBuilderX提供哪些内置Tag代码块和JS代码块。
uButton
uCheckbox
uGrid:宫格,需引用uni ui
uList:列表,需引用uni ui
uListMedia
uRadio
uSwiper
...
几乎各种组件不管是内置组件还是uni ui的组件,均已封装为代码块,在HBuilderX的vue代码template区域中敲u
,代码助手会提示10个代码块列表,如果没有,需要输入更详细的关键字。也可在HBuilderX菜单工具-代码块设置-vue代码块的左侧列表查阅所有。
下面输入us
,查看uSwiper代码块:
除组件外,其他常用代码块包括:
viewfor:生成一段带有v-for循环结构的视图代码块 vbase:生成一段基本的vue代码结构
1、uRequest 请求代码模板
uni.request({
url: '',
method: 'GET',
data: {},
success: res => {},
fail: () => {},
complete: () => {}
});
2、uGetLocation 获取定位代码模板
uni.getLocation({
type: 'wgs84',
success: res => {}
fail: () => {},
complete: () => {}
});
3、uShowToast 提示框代码模板
4、uShowLoading 显示loading代码模板
5、uHideLoading 隐藏loading代码模板
6、uShowModal 显示模态弹框代码模板
7、uShowActionSheet 显示操作菜单代码模板
8、uNavigateTo
9、uNavigateBack
10、uRedirectTo
11、uStartPullDownRefresh
12、uStopPullDownRefresh
13、uLogin
14、uShare
15、uPay
......
1、vImport:导入文件
2、ed:export default
3、vData:输出 data(){return{}}
4、vMethod:输出 methods:{}
5、vComponents:输出 components: {}
6、ifios:iOS的平台判断
7、ifAndroid:Android的平台判断
8、iff:简单if
9、forr:for循环结构体
10、fori:for循环结构体并包含i
11、funn:函数
12、funa:匿名函数
13、rt:return true
14、clog:输出:"console.log()"
15、clogvar:增强的日志输出,可同时把变量的名字打印出来
16、varcw:输出:"var currentWebview = this.$mp.page.$getAppWebview()"
当然,如果预置代码块不满足需求的话,可以自定义代码块
点菜单-工具-代码块设置,选择你要查看的语言的代码块。
打开的界面中,左侧即是预置的代码块,右侧是开发者可以自己扩展代码块的地方。
掌握这些代码块,开发快的不止一点点哦。
uni-app H5调试,就和我们平常调试网页一样哦,进入 uni-app 项目,点击工具栏的运行 -> 运行到浏览器 -> 选择 Chrome
,F12
开始调试。需要注意:Chrome调试只能保证样式一致,部分原生能力是不支持的,比如获取定位,支付等。如果不是使用HBuilderX内置浏览器调试,网络请求也是不能跨域的哦,而内置浏览器是允许跨域的,同时内置浏览器也能模拟获取定位,不过都是北京市的定位。
uni-app 运行到微信web开发者工具等小程序开发工具里,可在这些工具的控制台查看 console 信息,网络请求等信息等。
页面样式调试和一般的web项目一样,通过调试的箭头选中元素即可查看相应的节点和样式,如下图:
调试 js
时需要切换到 Sources
栏,选中想要调试的那个页面的js,进行调试(如果js代码是压缩过的,点击右下角的{}可格式化代码),如下图:
在HBuilderX的运行菜单里运行App,手机端的错误或console.log日志信息会直接打印到控制台。
但是需要更多功能,比如审查元素、打断点debug,则需要启动调试模式。自 HBuilderX 2.0.3+ 版本起开始支持 App 端的调试。
在 HBuilderX 中,正确运行项目: 运行 --> 运行到手机或模拟器 --> 选择设备,项目启动后,在下方的控制台选择 debug 图标:
正确打开调试窗口后,显示如下:
Elements 主要显示当前页面的组织结构,目前Elements只支持nvue。
在调试窗口控制台的 Sources 栏,可以给 js 打断点调试。
之后,在设备上进行操作,进入断点位置,可以方便我们跟踪调试代码。
debug仅支持自定义组件模式。如果是非自定义组件模式,请在manifest里配置选为自定义组件模式。非自定义组件模式即将停止支持,
vue 和 nvue 页面均支持断点调试
目前仅支持 nvue 页面审查元素,vue 页面暂不支持,以及 Android 平台的 nvue 审查元素暂不支持查看 style
App端提供真机运行的console.log日志输出,运行到真机或模拟器时,不用点debug按钮,运行手机App,会在HBuilderX的控制台直接输出日志。
如果是调试App的界面和常规API,推荐编译到H5端,点HBuilderX右上角的预览,在内置浏览器里调Dom,保存后立即看到结果,调试更方便。并且H5端也支持titleNView的各种复杂设置。唯一要注意的就是css兼容性,使用太新的css在pc上预览可能正常,但低端Android上异常,具体可查询caniuse等网站。 常用的开发模式就是pc上使用内置浏览器预览调dom,运行到真机上看console.log。如果是很复杂的问题才使用debug。
vue页面也可以在微信开发者工具里调试,除了plus API,其他是一样的,微信开发者工具的查看Dom和网络和存储等调试工具相对而言更完善些。 注意:即使不发布微信小程序、只发布App,也需要安装微信开发者工具。
uni-app的App端没有5+App那种webkit remote debug,因为uni-app的js不是运行在webview里,而是独立的jscore里。
部分manifest配置,如三方sdk配置,需要打包后生效的,可以打包一个自定义运行基座。打包自定义基座后运行这个自定义基座,同样可以真机运行和debug。打包正式包将无法真机运行和debug。
本文主要是讲讲Uni App开发技巧,快速撸码技巧和调试技巧,掌握这2点,相信你可以开发出优秀的Uni App。
最后,谢谢大家支持。