Vue 跨平台性能优化十法

 Vue.js 开发能够同时运行在不同平台(如 Web、移动平台和桌面平台)的应用程序。以下是一些常见的跨平台解决方案:

 1.

  1. 使用 Vue.js 官方发布的框架:

    • Vue.js:主要用于 Web 开发。

    • Vue Native:使用 Vue 语法开发原生应用(需要结合React Native)。

    • Quasar Framework:一个构建跨平台桌面和移动应用的开源框架。

1-2    

Vue Native 是一个框架,它允许开发者使用 JavaScript 来构建跨平台的原生移动应用。它是基于 React Native 的封装,所以利用 Vue Native,你可以实现React Native的所有功能。这个框架特别之处在于它结合了 Vue.js 的简洁性和 React Native 的广泛适用性,让你能以 Vue.js 的语法构建iOS和Android的移动应用

1-3-1  什么是Quasar?

Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:

  • 响应式网站
  • PWA(Progressive Web App)
  • 通过Apache Cordova构建移动APP(Android,iOS,…)
  • 多平台桌面应用程序(使用Electron)

Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile App和Electron App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar Web组件。

当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!

1-3-2

开箱即用。

1-3-3

两个主题(将有更多)

该框架支持两种最常用的主题 - Material主题和iOS主题。

1-3-4

通过Quasar CLI提供无与伦比的开发人员体验

当使用Quasar的CLI时,开发人员将受益于:

  • 无论是网站,PWA,移动APP(直接在手机上还是在仿真器上)或Electron应用程序,更改应用程序源代码时,都会进行状态保持热重载。开发人员只需更改他们的代码,就可以看到应用即时更新,而不需要任何页面刷新。
  • 状态保持编译错误覆盖。
  • 使用ESLint进行Lint-on-save - 如果开发人员只喜欢使用他们的代码
  • ES6代码转译
  • Sourcemaps
  • 更改构建选项不需要手动重新加载开发服务器
  • 更多领先的开发工具和技术

1-3-5

底层技术

VueBabelWebpackCordovaElectron

除了Vue(需要半天的时间就能学会并永远改变你),你并不需要知道其他技术。他们中的大多数都已集成并已为您配置。

Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码

Electron的正确读法应该是[iˈlektrɒn]   使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用程序

  1. 2    .使用服务端渲染(SSR)或静态站点生成(SSG):

    • Nuxt.js(Vue.js 的 SSR 框架)

    • Gridsome(基于 Vue.js 的 SSG 框架)

2-1.服务端渲染又称SSR(Server Side Render)实在服务端完成页面的内容,而不是在客户端通过AJAX获取数据
优势:更好的SEO(搜索引擎),由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面

Nuxt.js是一个基于Vue.js的轻量级应用框架,可用来创建服务端渲染(SSR)应用,也可以充当静态站点引擎生成静态站点应用。
https://zh.nuxtjs.org

2-2Gridsome 让开发人员可以轻松地构建静态生成的网站和应用程序,这些网站和应用程序 天生速度快

   2-2-1 

便捷的本地开发

使用
 Vue.js、 GraphQL 等现代工具以及 Node.js 和 JavaScript 生态系统内所有强大的功能来构建网站。在本地开发时,可以立即对任何代码的更改进行 热加载(hot-reloading)

2-2-2

天生快速

Gridsome 利用 PRPL 模式将超高性能融入到每个页面中。代码拆分、资源优化、图像渐进加载和链接预取功能开箱即用。用 Gridsome 构建的站点在默认配置下就能获得几乎完美的页面速度得分。

2-2-3

基于 Jamstack 技术构建

web 的未来将是 JavaScript、API 和 Markup(标记语言) - 即 Jamstack。Gridsome 利用强大的静态站点生成技术、JavaScript 和 API 来创建令人惊叹的现代 web 体验。

2-2-4

部署简单、安全

无须服务器、无须数据库、只有文件。将你的整个站点直接部署到 CDN 上,然后无须费心打理。用 Gridsome 构建的网站可以处理少至几千多至百万次的点击而不会出现故障,并且无须高昂的服务器费用。

Vue 跨平台性能优化十法

1. v-for 遍历必须为 item 添加 key,且避免同时使用 v-if

2. 长列表性能优化

   纯粹的数据展示,不会有任何改变,我们就不需要 Vue 来劫持我们的数据,减少组件初始化的时间,可以通过 Object.freeze 方法来冻结一个对象,一旦被冻结的对象就再也不能被修改了。

export default {data: () => ({users: {}}),async created() {const users = await axios.get("/api/users");this.users = Object.freeze(users);}
};
3. vue 组件中的 data 是函数而不是对象

4. 组件懒加载   对于页面上不是首次加载就需要的组件,可以采用异步组件或路由懒加载的方式,延迟加载它们,提高首屏加载速度

5.合理使用 keep-alive: 对于经常切换的组件,可以使用 keep-alive 缓存组件实例,避免重复创建和销毁,提高渲染性能。

6.避免频繁的 Watcher 或深度监听: 

7.使用异步组件和路由懒加载:

8.利用事件修饰符: Vue.js 提供了一些方便的事件修饰符,如 .stop、.prevent、.once 等,合理使用它们可以减少不必要的事件监听和处理。

9缓存重复获取的数据: 通过合理使用 Vuex 状态管理库或本地缓存等方式,避免重复请求和计算相同的数据,提高性能和响应速度。

10.优化计算属性和监听器: 尽量避免在计算属性或监听器中进行复杂的计算或操作,因为它们会在每次数据变化时都被调用。确保这些函数保持简单且高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构 | 超详细讲解七大排序(C语言实现,含动图,多方法!)

目录 ​编辑 排序的概念 常见排序算法 ​编辑 1.冒泡排序 🍹图解 🥳代码实现 🤔时间复杂度 2.插入排序 🍹图解 🌴深度剖析 🍎代码思路 🥳代码实现 🤔时间复杂度 3.希尔…

2024 年适用于 Linux 的 5 个微软 Word 替代品

对于那些最近由于隐私问题或其他原因而转向 Linux 的用户来说,可能很难替换他们最喜欢的、不在 Linux 操作系统上运行的应用程序。 寻找流行程序的合适替代品可能会成为一项挑战,而且并不是每个人都准备好花费大量时间来尝试弄清楚什么可以与他们在 Win…

读书笔记|《把自己变成稀缺资产》:我们都拥有100分的欲望,却只有1分的耐心。

哈喽,你好啊,我是雷工! 最近在读一本书《把自己变成稀缺资产》,其中一章讲到耐心的重要性,很有共鸣。 当今社会,生活节奏越来越快,我们都在急于求成的追求结果,对过程越来越缺乏耐…

C++核心编程友元的应用

文章目录 1.友元1.什么是友元2.全局函数做友元2.类做友元3.成员函数做友元 1.友元 1.什么是友元 在C中,友元(friend)是一种允许一个类或函数访问另一个类的非公有(private 或 protected)成员的机制。这种机制打破了类…

系统研发安全漏洞

软件安全漏洞指的是软件中存在的具体缺陷或疏忽,这些缺陷或疏忽能够被攻击者利用并执行一些恶意行为。这些行为包括但不限于泄露或修改敏感信息、干扰或销毁系统、接管计算机系统或程序权限等。与大众熟悉的软件缺陷(Bug)相比,安全…

Mysql中表的常用约束

在MySQL表中常用的约束有以下几种: 1. 主键约束(Primary Key Constraint):用于标识表中的唯一记录。一个表只能有一个主键,主键列不能有重复值,也不能为NULL。 2. 唯一约束(Unique Constraint…

2024050402-重学 Java 设计模式《实战责任链模式》

重学 Java 设计模式:实战责任链模式「模拟618电商大促期间,项目上线流程多级负责人审批场景」 一、前言 场地和场景的重要性 射击🏹需要去靶场学习、滑雪🏂需要去雪场体验、开车🚗需要能上路实践,而编程…

Scanpy(4)用与数据整合和批次处理

Scanpy包,用与数据整合和批次处理,包含批次效应的BBKNN算法和用于对比的ingest基础算法比较,及其原理简介。 1. 依赖: (1)数据集(全部需要挂VPN): PBMC:pbmc3k_processed()(需要下载);pbmc68k_reduced()(scanpy自带)Pancreas(需要下载)(2)Python包:Scanp…

【Python】把xmind转换为指定格式txt文本

人工智能训练通常需要使用文本格式,xmind作为一种常规格式不好进行解析,那如何把xmind转换为txt格式呢? 软件信息 python python -v Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] on win32…

Python 包安装及常用命令【python 入门】

背景: 近期看到一个项目,做微信只能机器人,服务是使用python搭建的,于是拷贝下来自己打算跑一跑,部署一下,可是自己又没有python的经验,于是各种查资料学习,跟着敲一敲,顺…

Go 1.19.4 切片与子切片-Day 05

1. 切片 1.1 介绍 切片在Go中是一个引用类型,它包含三个组成部分:指向底层数组的指针(pointer)、切片的长度(length)以及切片的容量(capacity),这些信息共同构成了切片的…

单片机排水泵高压方案

灵动微多颗算力高、高可靠性的通用系列和电机专用系列MCU,配合成熟的控制算法,覆盖了包括洗衣机在内的各种大小家电市场。 RAMSUN提供的MM32 MCU种类较多,例如洗衣机内部的排水泵系统,排水泵控制首选电控高性价比产品MM32SPIN023…

JavaWeb_SpringBootWeb案例

环境搭建: 开发规范 接口风格-Restful: 统一响应结果-Result: 开发流程: 第一步应该根据需求定义表结构和定义接口文档 注意: 本文代码从上往下一直添加功能,后面的模块下的代码包括前面的模块&#xff0c…

Xmind Pro 2024 专业版激活码(附下载链接)

说到思维导图,就不能不提 Xmind。这是一款优秀的思维导图工具,拥有着丰富的导图模板,漂亮的界面和配色,以及各种各样的创意工具。 新架构速度更快 采用全新 Snowdancer 引擎,一种堪称「黑科技」的先进图形渲染技术。…

翘首以盼的抗锯齿

Antialiasing 实际的图形学中是怎么实现反走样的呢? 我们不希望实际产出的图形有锯齿效果,那怎么办呢? 从采样的理论开始谈起吧 Simpling theory 照片也是一种采样,把景象打散成像素放到屏幕上的过程: 还可以在不…

14、企业数据资源相关会计处理暂行规定

为规范企业数据资源相关会计处理, 强化相关会计信息披露, 根据《中华人民共和国会计法》 和企业会计准则等相关规定, 现对企业数据资源的相关会计处理规定如下: 一、 关于适用范围 本规定适用于企业按照企业会计准则相关规定确认为无形资产或存货等资产类别的数据资源,以…

21 - 即时食物配送 II(高频 SQL 50 题基础版)

21 - 即时食物配送 II -- sum(if(order_datecustomer_pref_delivery_date,1,0))/count(*)sum(order_datecustomer_pref_delivery_date)/count(*) -- count(*),表示数据的行数,如果有分组,为分组后数据的行数select round(100*sum(if(order_datecustomer_…

【名词解释】Unity的Button组件及其使用示例

Unity的Button组件是Unity引擎中UI系统的一部分,它允许用户创建可交互的按钮,用户可以点击这些按钮来触发事件。Button组件通常用于游戏界面中,比如开始游戏、暂停游戏、选择选项等。 Button组件的主要属性包括: interactable: …

原来Stable Diffusion是这样工作的

stable diffusion是一种潜在扩散模型,可以从文本生成人工智能图像。为什么叫做潜在扩散模型呢?这是因为与在高维图像空间中操作不同,它首先将图像压缩到潜在空间中,然后再进行操作。 在这篇文章中,我们将深入了解它到…

达摩院重大“遗产”!fluxonium量子比特初始化300纳秒且保真度超过99%

通用量子计算机开发的主要挑战之一是制备量子比特。十多年来,研究人员在构建量子计算机的过程中主要使用了transmon量子比特,这也是迄今为止商业上最成功的超导量子比特。 但与业界多数选择transmon量子比特不同,(前)…