在现今这个信息化的社会,掌握一门或多门编程技能已经成为高校学生必备的能力之一。作为一名热衷于技术学习的学生,我选择参加了《uni-app》这门课程,旨在通过学习uni-app框架,提升自己的跨平台应用开发能力。
在课程学习之初,我对uni-app的理解仅仅停留在它是一个可以开发多个平台应用的工具上。然而,随着课程的深入,我逐渐发现uni-app的强大之处远不止于此。它不仅整合了多个平台的开发技术,还提供了丰富的组件和API,使得开发者能够高效地开发出高质量的应用。
在学习过程中,我遇到了一些挑战。首先是对于Vue.js框架的不熟悉,因为uni-app是基于Vue.js开发的。为了能够更好地掌握uni-app,我花费了大量的时间去学习Vue.js的基础知识。其次是对于跨平台开发的理解不够深入,导致在开发过程中遇到了一些兼容性问题。但是,在老师和同学们的帮助下,我逐渐克服了这些困难,对uni-app有了更深入的了解。
通过这门课程的学习,我收获颇丰。我不仅掌握了uni-app的基本语法和开发流程,还学会了如何利用uni-app的组件和API进行应用开发。更重要的是,我学会了如何从一个全局的角度去看待应用开发,学会了如何在不同的平台之间找到平衡,确保应用的质量和用户体验。
这次学习也让我深刻体会到了团队合作的重要性。在项目开发的过程中,我们需要与团队成员紧密协作,共同解决遇到的问题。通过不断的沟通和交流,我们不仅能够更好地完成任务,还能够增进彼此之间的友谊和信任。
回顾这次学习经历,我深感自己在技术和思维上都得到了很大的提升。我意识到,学习编程不仅仅是为了掌握一门技能,更是为了培养自己的逻辑思维能力和解决问题的能力。在未来的学习和工作中,我将继续努力学习编程知识,不断提升自己的技能和素养。
展望未来,我计划将所学到的uni-app知识应用到实际项目中,通过实践来巩固和提升自己的能力。同时,我也会继续关注uni-app的发展动态和技术更新,不断学习和掌握新的技术和方法。
uni-app介绍及对其优缺点理解
1.开发多端兼容应用的一种较好的方案:
a.开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支
付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台,常见平台基本上都可以被兼容到;
b.开发体验还是相对较好的,很多时候可以在h5开发,然后在app或者mp上调整一下就可以用
了;
i.个人感觉相对于r这种需要一直运行在真机或者模拟器上,开发体验是要好一些;
c.如果没有多端兼容的需求或者预留平台开发的任务,只是为了开发一种平台,还是建议使用
对应比较成熟的技术会更好一些;
i.如纯原生的Android或者IOS,性能肯定是要更好一点的; ii.一般H5的开发体验也比用uni好一些;
d.跨端也不是说一劳永逸不需要对相应的端进行测试和兼容的,还是会有一些问题需要处理
的,如官方知道的跨端注意事项;
i.有时候一些关键的点上走不通,可能就需要花费很多额外的工作去做相应端的兼容,如百
度小程序不支持scoped ;
ii.App转为微信小程序的一点经验;
iii.另一些三方sdk,只兼容了android或者ios的原生,根本没考虑uni-app的情况,这个时
候就要费劲的去做兼容处理,需要做原生混合编码,对纯前端来说不是很友好,可能还是需要原生的app开发进行操作;
2.从Vue过渡过去成本非常低,不会有太多额外的学习成本:
a.uni基于通用的前端技术栈,采用vue语法+微信小程序api,无额外学习成本; b.对于使用uni来开发App来说,直接跳过了学习weex的环节; c.对于App原生有的时候会需要用到nvue的技术;
i.这里语法差别不是很大,通常情况下.vue组件直接修改为.nvue就可以了,nvue就是
weex上补充了uni的jsApi;
uni-app开发微信小程序和App经验
微信小程序双线程运行机制|渲染层和逻辑层
1.渲染层的界面使用了WebView进行渲染;
a.wxss,可以独立的在视图层运行,而不需要逻辑层;
b.重渲染机制,wxss节点越少,嵌套越少,渲染效率越高;
i.节点要小于1000个,层数要小于30层;
2.逻辑层采用 JsCore线程运行JS脚本;
a.借助wxWebAssembly的原理,使用编译型语言,如c,go等来替代解释性语言(运行时)
JS,从而来提高性能;
3.native层,用于以上两者进行通信;
a,一个小程序存在多个界面,所以渲染层存在多个WebView线程,这两个线程的通信会经由微
信客户端native做中转,逻辑层发送网络请求也经由native转发; b.逻辑层需要处理数据,调用setData来将数据传递到渲染层;
i.setData,传递的数据不能超过256kb,超过就会卡顿;
ii.频繁的调用setData,也会出现明显的卡顿现象;
iii.使用uni-app开发的微信小程序,因为智能的处理的数据的diff,比大多人手写的原生小
程序的性能还好。
只有逻辑层和视图层代码全部注入后,并且时间点对齐后,才会开始第三阶段首屏渲染的工作。在渲染完界面之后,页面实例就会收到一个onLoad的回调,你可以在这个回调处理你的逻辑。
小程序与普通网页开发的区别
1.网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响
应,而在小程序中,二者是分开的,分别运行在不同的线程中;
a.逻辑层运行在JSCore中,并没有一个完整浏览器对象,因而缺少相关的DOM API和 BOM
API。**这一区别导致了前端开发非常熟悉的一些库,例如jQuery、Zepto等,在小程序中是无法运行的。**同时JSCore的环境同NodeJS环境也是不尽相同,所以一些NPM 的包在小程序中也是无法运行的。
2.小程序的体验和用户粘性要好于h5;h5的权限问题及更新要比小程序方便很多。
总的来说,这次《uni-app》课程学习让我收获了很多,不仅提升了我的技术能力,也让我对编程有了更深刻的理解。我相信,在未来的学习和工作中,我会更加努力地学习、实践和创新,成为一名优秀的开发者。
【作业分享】
1.实现搜索栏和轮播图效果
2.电影搜索
3.实现手机商城首页,能够进行商品类别的切换