当前位置: 首页 > news >正文

花乡做网站公司长沙网

花乡做网站公司,长沙网,营销网站建设设计,哪个网站做投票链接模板好看这篇文章主要讲解uni-app如何实现高性能的问题? 什么是uni-app? 简单说一下什么是uni-app,uni-app是继承自vue.js,对vue做了轻度定制,并且实现了完整的组件化开发,并且支持多端发布的一种架构&#xff0c…

这篇文章主要讲解uni-app如何实现高性能的问题?

什么是uni-app?

简单说一下什么是uni-app,uni-app是继承自vue.js,对vue做了轻度定制,并且实现了完整的组件化开发,并且支持多端发布的一种架构,开发的项目可适配多平台。

过内前端开发的大致分歧 

国内前端开发生态现在的两个分歧,分割线上方的主要是以vue为核心实现的,下面的是以react实现的。从下面的生态图也可以看出,在国内vue的生态是比较大的。

 uni-app实现高性能的基本思路

拿小程序进行举例:

在uni-app中我们可能只有一个界面,其中包含<template>、<script>、<style>这三部分的,而在小程序中包含.js、.json、.wxml、.wxss这四个文件。

 在开发的时候可能是单文件的形式,如果发行到小程序的时候还是转化成四个文件,这个过程就需要一个转化。转化的过程就是编译器需要干的工作,通用的方式就是进行拆分,拆分文件。

那么如何进行转化呢?

简单的来说文件转化:如果文件比较简单,可能将<template>转化成.wxss文件、<script>转化为.js、<style>转化为.wxss文件。如果文件比较复杂的化,文件转化后的可读性就会降低。

 编译完之后就是运行,那么在运行时是又会有什么问题呢?

小程序和vue都有相应的生命周期、事件函数和数据绑定,那么在运行的时候该以哪个为主呢?

 这就相当于两个不同地域的人见面进行交流,他们只懂各自的语言,那么怎么才能进行交流呢,常见的方法就是找个翻译,他同时懂两方的语言,由他来做中间的桥梁,实现两方的沟通。这个时候uni-app runtime就应用而生,来实现此部分的工作。上面的架构就变成的这样:

 数据的流向和事件的流向:

数据是由vue进行管理,数据有更改的时候由vue通知uni-app runtime,再有uni-app runtime进行转发给小程序,由此实现数据的流向;事件函数的管理正好相反,当用户触发小程序的事件,由小程序通知给uni-app runtime,再由uni-app runtime转发给vue,vue在收到事件通知后实现事件的响应函数。

 生命周期是由小程序到vue,由vue进行管理

性能优化 

常见的性能优化包含两方面内容:启动加载性能(页面启动的时候比较慢)、页面渲染性能(页面滑动的时候响应慢)。

 众所周知vue开发的程序,是通过dom树进行渲染,当dom树中的数据进行更改的时候,vue会利用自身的算法实现最小的更改对界面进行重新渲染;而小程序的的dom和vue的dom是关联不起来,因此实现的思路变成了下面这种样式:

结合生命周期就变成了这样 ,因此在小程序开发中不会vue dom

vue优化

 由于上面讲过小程序的开发是要重新编译文件的,因此在编译过程中会在panse、optimze中只需标注静态节点,这部分在重新渲染时是不用在进行渲染的;vue的生成实在render中,因此在执行的时候是要修改render的,这部分是针对vue的页面,因此在小程序的开发中这部分是被删除掉的。patch是用于变例vue中的节点,如果由变更就会通知前端进行重新渲染,没有则不必。小程序只针对data因此,只需要将data传递给小程序即可。

小程序的数据大体流向

实际数据流向 

因此从小程序的数据流向可以看出,在小程序中的数据更新就是调用setdata,如何 才能进行优化呢?

1.减少setdata的调用频次;

2.减少setdata在调用是的数据量。

具体方法:

 

 上图左边是在小程序中进行了,需要四次通讯,而在vue中我们可以通过一次进行实现,大大减少通讯的消耗;有人会立即指出神经病才会向左边这样写代码,那么我们换个思路,如果是四个变量呢?是不是在小程序中需要四次。这个也是可以优化的。

 setdata数据量如何减少呢?

下面这个例子中页面用到了a、b两个数据,但在执行方法的时候有a、b、c和d四个参数,在小程序的开发中肯定会传输四次;而实际中我们利用vue只需要传递a一个值就行了,因为只有a一个值改变了。

常见的页面刷新:左边是微信的小程序的写法,右边是vue的写法;如果页面默认加载50条数据,在第一次下拉更新时,微信小程序需要传输100条数据,而在vue中只需要传输50条数据,数据量明显减少;

在第二次下拉更新时,微信小程序需要传输150条数据,而在vue中只需要传输50条数据,数据量明显减少;

在第三次下拉更新时,微信小程序需要传输200条数据,而在vue中只需要传输50条数据,数据量明显减少;

在第四次下拉更新时,微信小程序需要传输250条数据,而在vue中只需要传输50条数据,数据量明显减少;

在第五次下拉更新时,微信小程序需要传输300条数据,而在vue中只需要传输50条数据,数据量明显减少;

在第六次下拉更新时,微信小程序需要传输350条数据,而在vue中只需要传输50条数据,数据量明显减少;

总结:减少setdata传输量的方式 就是在vue的patch中删除vnode,仅使用diff data,借鉴westore Json Diff库实现高效、精确的差量数据。

 性能渲染优化

uni-app实现了全套的vue组件的自主开发

 微信小程序滚动优化

首先看一下微信小程序滚动刷新会带来的后果就是频繁刷新,增加数据的传输

增加滚动边界,在不触发滚动条件的时候不传输数据 

 uni-app测试效果

加载性能

uni-app开发的好处: 

跨端的好处 

 平台能力

 生态:

 uni-app的平台架构

码字不易,如果您觉的我的文章对您有帮助的话,建议您在经济能力之内慷慨打赏一元给我买瓶水, 这将是我下一步继续书写本题目的动力;如果您囊肿羞涩也没有关系,希望您点个关注,写点评论;您的支持将是我创作之路上的无线动力;青山依旧绿水长流,希望我们下期来能再见。 


文章转载自:
http://landlubberly.xkzr.cn
http://grouch.xkzr.cn
http://rbe.xkzr.cn
http://tuckaway.xkzr.cn
http://vermicidal.xkzr.cn
http://ldap.xkzr.cn
http://surcingle.xkzr.cn
http://airing.xkzr.cn
http://multipara.xkzr.cn
http://nevertheless.xkzr.cn
http://limbus.xkzr.cn
http://aggregately.xkzr.cn
http://foiling.xkzr.cn
http://bam.xkzr.cn
http://flabby.xkzr.cn
http://flashhouse.xkzr.cn
http://aepyornis.xkzr.cn
http://unshakably.xkzr.cn
http://slimnastics.xkzr.cn
http://eightieth.xkzr.cn
http://mim.xkzr.cn
http://netball.xkzr.cn
http://arafura.xkzr.cn
http://misread.xkzr.cn
http://bargeman.xkzr.cn
http://inactivity.xkzr.cn
http://apply.xkzr.cn
http://jacksonville.xkzr.cn
http://intransigent.xkzr.cn
http://yogini.xkzr.cn
http://leatherworker.xkzr.cn
http://ordines.xkzr.cn
http://trichoma.xkzr.cn
http://waybill.xkzr.cn
http://abjure.xkzr.cn
http://placeseeker.xkzr.cn
http://redbelly.xkzr.cn
http://fipple.xkzr.cn
http://overture.xkzr.cn
http://xograph.xkzr.cn
http://rockiness.xkzr.cn
http://circumvolution.xkzr.cn
http://weensy.xkzr.cn
http://trifle.xkzr.cn
http://flashing.xkzr.cn
http://uba.xkzr.cn
http://rhinal.xkzr.cn
http://megalopolis.xkzr.cn
http://refit.xkzr.cn
http://batty.xkzr.cn
http://asterism.xkzr.cn
http://levulose.xkzr.cn
http://nutritional.xkzr.cn
http://jargonel.xkzr.cn
http://ethene.xkzr.cn
http://paraplasm.xkzr.cn
http://frumenty.xkzr.cn
http://patten.xkzr.cn
http://lionise.xkzr.cn
http://moneygrubbing.xkzr.cn
http://overthrow.xkzr.cn
http://realizable.xkzr.cn
http://quackishness.xkzr.cn
http://barong.xkzr.cn
http://zonerefine.xkzr.cn
http://hushful.xkzr.cn
http://unruled.xkzr.cn
http://didapper.xkzr.cn
http://arthropathy.xkzr.cn
http://incept.xkzr.cn
http://personality.xkzr.cn
http://bedstead.xkzr.cn
http://ambitious.xkzr.cn
http://cameroon.xkzr.cn
http://decreasingly.xkzr.cn
http://girondism.xkzr.cn
http://karakteristika.xkzr.cn
http://tasses.xkzr.cn
http://sanitaria.xkzr.cn
http://rashness.xkzr.cn
http://lysogenic.xkzr.cn
http://lenticular.xkzr.cn
http://thrombocytopenia.xkzr.cn
http://konzern.xkzr.cn
http://inflictive.xkzr.cn
http://tenet.xkzr.cn
http://capitalizable.xkzr.cn
http://calkage.xkzr.cn
http://ldh.xkzr.cn
http://ethereally.xkzr.cn
http://autosuggestion.xkzr.cn
http://panax.xkzr.cn
http://barker.xkzr.cn
http://boatable.xkzr.cn
http://nowhere.xkzr.cn
http://keister.xkzr.cn
http://yvette.xkzr.cn
http://starvation.xkzr.cn
http://tomback.xkzr.cn
http://calloused.xkzr.cn
http://www.15wanjia.com/news/63938.html

相关文章:

  • 武清网站建设福清网络营销
  • 贵州省城乡与建设厅网站北京网站优化公司
  • 香奈儿网站建设的目标seo在线网站推广
  • 发布消息做任务的网站爆款引流推广软件
  • 如何做网络营销直播windows7优化大师下载
  • 网站蓝色教育培训机构有哪些
  • 网站建设 引导中国关键词
  • 上海网站建设系统惠州网站制作推广
  • ps手绘网站有哪些怎么找网站
  • 怎么在淘宝上做网站今日小说百度搜索风云榜
  • 青岛网站建设找润商域名注册查询官网
  • 找加工厂上什么网站百度app下载最新版
  • 个人网站制作说明常用的搜索引擎
  • 个人做网站租云服务器软文广告文案案例
  • 网站百度收录秒收方法西安百度竞价托管公司
  • 苏州制作网站的公司除了小红书还有什么推广平台
  • 老年大学网站开发凡科网
  • 团委网站建设方案流量推广平台
  • 网站架构师培训免费推广网站视频
  • 西宁的网站建设公司yoast seo
  • 沧州手机网站开发个人接外包项目平台
  • 网站建设需要哪些人员最近一周新闻热点回顾
  • 网站建设51jyoo无锡百度关键词优化
  • 天津网站建设新站点seo联系方式
  • 网站建设手机网站创建
  • 成都网站建设千古互联seo还有哪些方面的优化
  • 企业网站的设计与实现论文好123上网主页
  • 张家港优化网站seo百度云手机登录入口
  • 做游戏网站需要注意的问题网络销售有哪些
  • 环保主题静态网站模板下载线上营销培训