哈喽大家好,2024年1月25日,打卡【每天学习一点点】day2,主要内容为记录和分享每日学习内容,学习的类型不限(全凭个人兴趣,哈哈哈,不一定今天能学点啥)
今年Q1季度的精力应该是放在移动端开发上了,Q2季度可能会慢慢开始 Electron,Tauri 的学习。
由于底层原理学起来不是一天两天的事,浅层理解又怕误导大家,所以我看到的关于一些原理的文章粘在文档底部了,大家可以参考看一看,我就不誊抄在这里了(粘来粘去也没有什么意义)
在学习期间,如果有好玩的动手小实验,我也会分享出来给大家一起练练手哈。
回顾:昨天学习了uniapp在app端开发时的原理(主要分为编译器和运行时),基于vue的开发模式如下
①vue.js编译为js代码
②js代码运行在uniapp运行时提供的js执行引擎中,和视图层交互,视图层负责渲染页面
今天:那么今天再来学习一下nvue以及weex相关知识。
uni-app是逻辑和渲染分离的。渲染层,在app端提供了两套排版引擎:
①小程序方式的webview渲染
②weex方式的原生渲染。
在 App 端,
如果使用 vue 页面,则使用 webview 渲染;
如果使用 nvue 页面(native vue 的缩写),则使用原生渲染;
uni-app App 端内置了一个基于 weex 改进的原生渲染引擎,提供了原生渲染能力。
day2 - uniapp开发app
1. 什么是nvue
简单来说,nvue就是编译后可以采用原生渲染(而不是webview渲染)的vue。
虽然 nvue 也可以多端编译,输出 H5 和小程序,但 nvue 的 css 写法受限,所以如果你不开发 App,那么不需要使用 nvue。
2. nvue开发注意事项
在使用nvue编写页面时,有很多注意事项(不能完全当成vue开发方式看待)
例如:
①.nvue也包含<template><script><style>三部分
②uniapp为我们提供了一些额外的内置组件,例如使用weex内置组件、uniapp为nvue提供的专用组件。
③style布局样式只支持flex布局
参考文档:nvue介绍 | uni-app官网 (dcloud.net.cn)
3. 什么是weex
简单来说,weex 的核心就是一个渲染引擎,负责原生渲染视图。
4. uniapp中扩展的weex
以往的 weex ,有个很大的问题是它只是一个高性能的渲染器,没有足够的 API 能力(比如各种 push sdk 集成、蓝牙等能力调用),使得开发时非常依赖原生工程师协作,开发者本来想节约成本,结果需要前端、iOS、Android 3 拨人开发,适得其反。 nvue 解决了这个问题,让前端工程师可以直接开发完整 App,并提供丰富的插件生态和云打包。这些组合方案,帮助开发者切实的提高效率、降低成本。
同时uni-app扩展了 weex 原生渲染引擎的很多排版能力,修复了很多 bug。比如
- Android 端良好支持边框阴影,详情
- iOS 端支持高斯模糊,
- 可实现区域滚动长列表+左右拖动列表+吸顶的复杂排版效果
- 优化圆角边框绘制性能
- 扩展了更多的 css
5. 参考文档