快速了解uni-app(html、vue、小程序的区别)

文章介绍了在uni-app中如何使用全局样式和组件导入,包括Vue的组件管理和数据绑定机制。同时对比了HTML标签与小程序组件的区别,以及uni-app中JavaScript、CSS和API的变化,以及面试准备建议,特别关注了前端技术在uni-app中的应用和适配。
摘要由CSDN通过智能技术生成

css外部文件导入

全局样式,在根目录下的app.vue里写入,每个页面都会加载app.vue里的样式。

**另外,vue支持组件导入,可以更方便的封装一个包括界面、js、样式的库。

如下是导入一个角标的组件库,在页面上显示一个abc并且右上角有个数字角标1,**详见

如需要全局导入vue组件,即每个页面都可以直接使用而不用引用和注册的话,在项目根目录下的main.js里处理。如下是hello uni-app里的例子。

//main.js

import pageHead from ‘./components/page-head.vue’ //导入

Vue.component(‘page-head’, pageHead) //注册。注册后在每个vue的page页面里可以直接使用组件。

组件/标签的变化

以前是html标签,现在是小程序组件。

区别

  • div 改成 view

  • span、font 改成 text

  • a 改成 navigator

  • img 改成 image

  • input 还在,但type属性改成了confirmtype

  • form、button、checkbox、radio、label、textarea、canvas、video 这些还在。

  • select 改成 picker

  • iframe 改成 web-view

  • ul、li没有了,都用view替代

  • audio 不再推荐使用,改成api方式,背景音频api文档

  • 其实老的HTML标签也可以在uni-app里使用,uni-app编译器会在编译时把老标签转为新标签,比如把:div编译成view。但不推荐这种用法,调试H5端时容易混乱。

除了改动外,新增了一批手机端常用的新组件:

  • scroll-view 可区域滚动视图容器

  • swiper 可滑动区域视图容器

  • icon 图标

  • rich-text 富文本(不可执行js,但可渲染各种文字格式和图片)

  • progress 进度条

  • slider 滑块指示器

  • switch 开关选择器

  • camera 相机

  • live-player 直播

  • map 地图

  • cover-view 可覆盖原生组件的视图容器 cover-view需要多强调几句,uni-app的非h5端的video、map、canvas、textarea是原生组件,层级高于其他组件。如需覆盖原生组件,比如在map上加个遮罩,则需要使用cover-view组件

除了内置组件,还有很多开源的扩展组件,把常用操作都进行封装,DCloud建立了插件市场收录这些扩展组件,详见插件市场

js的变化

1.运行环境变化

运行环境从浏览器变成v8引擎

标准js语法和api都支持,比如if、for、settimeout、indexOf等。

但浏览器专用的window、document、navigator、location对象,包括cookie等存储,只有在浏览器中才有,app和小程序都不支持。

可能有些人以为js等于浏览器里的js。其实js是ECMAScript组织管理的,浏览器中的js是w3c组织基于js规范补充了window、document、navigator、location等专用对象。

在uni-app的各个端中,除了h5端,其他端的js都运行在一个独立的v8引擎下,不是在浏览器中,所以浏览器的对象无法使用。如果你做过小程序开发,对此应当很了解。

这意味着依赖document的很多HTML的库,比如jqurey无法使用。

当然app和小程序支持web-view组件,里面可以加载标准HTML,这种页面仍然支持浏览器专用对象window、document、navigator、location。

2.数据绑定模式变化

以前的dom操作,改成vue的MVVM模式

现在前端趋势是去dom化,改用mvvm模式,更简洁的写法,大幅减少代码行数,同时差量渲染性能更好。

uni-app使用vue的数据绑定方式解决js和dom界面交互的问题。

如果你想改变某个dom元素的显示内容,比如一个view的显示文字:

以前是给view设id,然后js里通过选择器获取dom元素,进一步通过js进行赋值操作,修改dom元素的属性或值。

如下演示了一段代码,页面中有个显示的文字区和一个按钮,点击按钮后会修改文字区的值。

123

修改为789

现在的做法,是vue的绑定模式,给这个dom元素绑定一个js变量,在script中修改js变量的值,dom会自动变化,页面会自动更新渲染.

{{textvalue}}

<button :type=“buttontype” @click=“changetextvalue()”>修改为789

如果你学过小程序的数据绑定,但不了解vue,要注意:

  • 小程序的数据绑定参考了vue,但自己修改了一些。在uni-app中只支持标准的vue,不支持小程序的数据绑定语法

  • 小程序里的setData在uni-app里并不存在,因为vue是自动双向数据绑定的。直接通过赋值方式修改数据,如果数据绑定到界面上,界面会自动更新渲染

3. js api的变化

uni-app的api是参考小程序的,所以和浏览器的js api有很多不同,如

  • alert,confirm 改成 uni.showmodel

  • ajax 改成 uni.request

  • cookie、session 没有了,local.storage 改成 uni.storage

  • uni-app的js api还有很多,但基本就是小程序的api,把wx.xxx改为uni.xxx即可。详见

uni-app在不同的端,支持条件编译,无限制的使用各端独有的api,详见条件编译

css的变化

标准的css基本都是支持的。

选择器有2个变化:*选择器不支持;元素选择器里没有body,改为了page。微信小程序即是如此。

page{

}

单位方面

px无法动态适应不同宽度的屏幕,rem无法用于nvue/weex。如果想使用根据屏幕宽度自适应的单位,推荐使用rpx,全端支持。尺寸单位文档
跳槽是每个人的职业生涯中都要经历的过程,不论你是搜索到的这篇文章还是无意中浏览到的这篇文章,希望你没有白白浪费停留在这里的时间,能给你接下来或者以后的笔试面试带来一些帮助。

也许是互联网未来10年中最好的一年。WINTER IS COMING。但是如果你不真正的自己去尝试尝试,你永远不知道市面上的行情如何。这次找工作下来,我自身感觉市场并没有那么可怕,也拿到了几个大厂的offer。在此进行一个总结,给自己,也希望能帮助到需要的同学。

面试准备

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

面试准备根据每个人掌握的知识不同,准备的时间也不一样。现在对于前端岗位,以前也许不是很重视算法这块,但是现在很多公司也都会考。建议大家平时有空的时候多刷刷leetcode。算法的准备时间比较长,是一个长期的过程。需要在掌握了大部分前端基础知识的情况下,再有针对性的去复习算法。面试的时候算法能做出来肯定加分,但做不出来也不会一票否决,面试官也会给你提供一些思路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值