注意:导入此插件需要使用2.9+以上版本的HBuilderX
本站所有收费插件均支持免费试用,切勿私下交易或购买不可正常试用的插件,而造成不必要的纠纷。
学习本套课程需要储备Vue.js全家桶知识,课程地址:
uni-app使用vue的语法+小程序的标签和API。
使用了scss/sass语法后需要编译为css。uni-app会自动编译或对文件右键-外部命令编译时使用。
新安装HBuilderX工具的要保证有App真机运行插件,有手机才会被HBuilder识别。
上面是预告,连接步骤:
确认已安装Android手机驱动。
如果手机连接没有任何反应或提示驱动问题,可通过以下方式解决:
报错:Cannotreadproperty'forceUpdate'ofundefined
解决:
uni,读youni,是统一的意思。
不需要专门去学习小程序的语法,uni-app使用的是vue的语法,不是小程序自定义的语法。
uni-app官方文档内容说明,根据官方导航栏模块查找知识:
总结
说明
注意
==总结==
/*绝对路径*/background-image:url(/static/logo.png);background-image:url(@/static/logo.png);/*相对路径*/background-image:url(../../static/logo.png);注意
方式一:Unicode引用步骤
Unicode是字体在网页端最原始的应用方式,特点是:
方式二:Font-class类名引用步骤(推荐方式)
font-class是Unicode使用方式的一种变种,主要是解决Unicode书写不直观,语意不明确的问题。
与Unicode使用方式相比,具有如下特点:
步骤
关于字体图标大总结:
pages.json文件用来对uni-app进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar等。
用于设置应用的状态栏、导航条、标题、窗口背景色等。下面配置项默认应用于每个页面。
==注意:更改pages.json里面的配置信息后,最好是重新运行项目,并且手机上的app也要退出重新打开;不然有时候不生效。==
参考配置如下:
"globalStyle":{//状态栏与导航栏背景色"navigationBarBackgroundColor":"#FFFFFF",//状态栏与导航栏字体颜色,仅支持black/white(默认)"navigationBarTextStyle":"black",//导航栏标题文字"navigationBarTitleText":"梦学谷",//导航栏图片地址(替换导航栏标题文字)"titleImage":"/static/logo.png",//导航栏整体透明(always一直透明/auto滑动自适应/none不透明)"transparentTitle":"auto"//导航栏样式,仅支持default/custom,custom不显示原生导航栏,状态栏也不占位//"navigationStyle":"default"}bounce下拉下拉回弹平台差异官方未更新,老师测试了下面是黄色部分也是可以的
"globalStyle":{//...//上拉下拉回弹背景色(ios和真机微小程序)"backgroundColor":"#e42863",//下拉顶部回弹背景色(ios和真机微小程序)"backgroundColorTop":"#000",//上拉底部回弹背景色(ios和真机微小程序)"backgroundColorBottom":"#345DC2"}下拉刷新和上拉触底主要用于下拉刷新数据,上拉触底查询下一页数据。一般针对需要使用的页面进行配置,而不会全局配置。
uni-app通过pages节点配置应用由哪些页面组成,pages节点接收一个数组,数组每个项都是一个对象,其属性值如下:
Tips:
代码示例:
代码示例
动画注意:
动画取值:
使用navigator组件类似HTML中的组件,但只能跳转本地页面。目标页面必须在pages.json中注册。
示例代码
注意动画效果可能无效
uni-app支持如下应用生命周期函数:
注意:==应用生命周期仅可在App.vue中监听,在其它页面监听无效。==
uni-app组件支持的生命周期,与vue标准组件的生命周期相同。这里没有页面级的onLoad等生命周期:
==注意:一般在子组件使用,当然页面中也是可以使用的。==
uni-app可通过process.env.NODE_ENV判断当前环境是开发环境还是生产环境。一般用于连接测试服务器或生产服务器的动态切换。
if(process.env.NODE_ENV==='development'){console.log('开发环境')}else{console.log('生产环境')}跨端兼容uni-app已将常用的组件、JSAPI封装到框架中,开发者按照uni-app规范开发即可保证多平台兼容,大部分业务均可直接满足。
但每个平台有自己的一些特性,因此会存在一些无法跨平台的情况。
在C语言中,通过#ifdef、#ifndef的方式,为windows、mac等不同os编译不同的代码。uni-app参考这个思路,为uni-app提供了条件编译手段,在一个工程里优雅的完成了平台个性化实现。
平台判断有2种场景,一种是在编译期判断(条件编译),一种是在运行期判断。
平台特有的组件示例:
样式(style)的条件编译/*#ifdef%PLATFORM%*/平台特有样式/*#endif*/注意:样式的条件编译,==无论是css还是sass/scss/less/stylus等预编译语言中,必须使用/*注释*/的写法。==
正确写法:
不同平台下的特有功能,以及小程序平台的分包,都可以通过pages.json的条件编译来更好地实现。这样,就不会在其它平台产生多余的资源,进而减小包体积。
在不同平台,引用的静态资源可能也存在差异,通过static的的条件编译可以解决此问题,static目录下新建不同平台的专有目录(目录名称同%PLATFORM%值域,但字母均为小写),专有目录下的静态资源只有在特定平台才会编译进去。
┌─static│├─mp-weixin││└─a.png│└─b.png├─main.js├─App.vue├─manifest.json└─pages.json运行期判断IOS/Android平台Android和iOS平台不支持通过条件编译来区分,如果需要区分Android、iOS平台,请通过调用uni.getSystemInfo来获取平台信息。
uni-app支持的通用css单位包括px、rpx
下面对rpx详细说明:
设计师在提供设计图时,一般只提供一个分辨率的图。
严格按设计图标注的px做开发,在不同宽度的手机上界面很容易变形。
而且主要是宽度变形。高度一般因为有滚动条,不容易出问题。由此,引发了较强的动态宽度单位需求。
rpx是相对于基准宽度的单位,可以根据屏幕宽度进行自适应。uni-app规定屏幕基准宽度750rpx。
开发者可以通过设计稿基准宽度计算页面元素rpx值,设计稿1px与框架样式1rpx转换公式如下:
设计稿1px/设计稿基准宽度=框架样式1rpx/750rpx换言之,页面元素宽度在uni-app中的宽度计算公式:
750*元素在设计稿中的宽度/设计稿基准宽度举例说明:
定义在App.vue中的样式为全局样式,作用于每一个页面。
在pages目录下的vue文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖App.vue中相同的选择器。
注意:
uni-app提供内置CSS变量
各小程序平台,包括同小程序平台的iOS和Android的高度也不一样。
和
nvue是属于weex编写范畴,作用是增强uniapp对原生渲染支持
基于原生引擎的渲染,虽然还是前端技术栈,但和web开发肯定是有区别的。
触发全局的自定事件。附加参数都会传给监听器回调。
onLoad(){uni.$on('update',function(data){console.log('监听到事件来自update,携带参数msg为:'+data.msg);})}uni.$once(eventName,callback)监听全局的自定义事件。事件可以由uni.$emit触发,但是只触发一次,在第一次触发之后移除监听器。
onLoad(){uni.$once('update',function(data){console.log('监听到事件来自update,携带参数msg为:'+data.msg);})}uni.$off([eventName,callback])移除全局自定义事件监听器。在un
onUnload(){//移除update监听器uni.$off('update')}Tips
它类似于传统html中的div,用于包裹各种元素内容。
属性说明
可滚动视图区域。用于区域滚动。针对一个区域左右、上下滑动
滑块视图容器。swiper是多个区域左右、上下切换。比如banner轮播图。
注意滑动切换和滚动的区别,滑动切换是一屏一屏的切换。swiper下的每个swiper-item是一个滑动切换区域,不能停留在2个滑动区域之间。
类似于网页开发中使用媒体查询来适配大屏小屏,match-media是一个可适配不同屏幕的基本视图组件。可以指定一组mediaquery媒体查询规则,满足查询条件时,这个组件才会被展示。
例如:在match-media组件中放置一个侧边栏,媒体查询规则设置为宽屏才显示,就可以实现在PC宽屏显示该侧边栏,而在手机窄屏中不显示侧边栏的效果。
平台兼容性
注意:支付宝小程序、qq小程序、百度小程序、字节小程序,暂不支持监听屏幕动态改变,即只执行一次媒体查询。
movable-area指代可拖动的范围,在其中内嵌movable-view组件用于指示可拖动的区域。其中movable-view必须在movable-area组件中,并且必须是直接子节点,否则不能移动。
即手指/鼠标按住movable-view拖动或双指缩放,但拖不出movable-area规定的范围。
当然也可以不拖动,而使用代码来触发movable-view在movable-area里的移动缩放。
平台差异说明
覆盖在原生组件上的文本视图。
app-vue和小程序框架,渲染引擎是webview的。但为了优化体验,部分组件如map、video、textarea、canvas通过原生控件实现,原生组件层级高于前端组件(类似flash层级高于div)。为了能正常覆盖原生组件,设计了cover-view。
将/pages/question/question.==vue==文件改为question.==nvue==
uni-app的Storage在不同端的实现不同:
除此之外,其他数据存储方案:
无
发送后台服务器请求接口数据
发布插件:151
下载9309303
赞赏1416
发布插件:86
下载189946
赞赏1105
发布插件:2
下载1249863
赞赏347
下载109235
赞赏1123
发布插件:34
下载396236
赞赏901
发布插件:1
下载343997
赞赏904
发布插件:120
下载144812
赞赏914
发布插件:18
下载216260
赞赏512
发布插件:136
下载89891
赞赏575
发布插件:5
下载76223
赞赏449
发布插件:62
下载50982
赞赏438
发布插件:11
下载187757
赞赏280
发布插件:17
下载129177
赞赏265
发布插件:13
下载84955
赞赏292
下载230320
赞赏162
Onefinebody…
DCloud即数字天堂(北京)网络技术有限公司是W3C成员及HTML5中国产业联盟发起单位