本文将介绍 Hybrid App 离线包的通用方案,并讨论 HTML 文件放入离线包的利弊。通过引入 CAP 理论作为指导准则,帮助优化和抉择离线包的一致性和可用性问题。
弱网情况下,用户如何快速打开 H5 页面?最好使的就是离线包方案,将 H5 的资源提前下载(或内置)到 App 中,加载资源时通过 App 内部的请求拦截机制转发本地资源,避免网络请求。
某次前端需求开发中,新增了一个 npm 包,在进行合码时发现 lockfile
出现冲突。
lockfile,即包管理工具的 lock 文件,比如
package-lock.json
、yarn.lock
、pnpm-lock.yaml
手动解冲突非常低效,又容易出错。以下是几种常用的解决方案:
- 删掉 lockfile,后面再重新安装依赖
- 重置为其中一个分支的 lockfile,后面再重新安装依赖
- 运行依赖安装命令,利用包管理工具自带的机制修复 lockfile 冲突
方案 1 会丢失 lock 记录,通常不会选择。
那方案 2 和方案 3 可行么?需要注意什么问题? 本文将对这些问题进行讨论,并在最后给出最佳实践。
如果不想关注细节,也可以滑到最后直接查看「最佳实践」。
我在简历上写了精通 H5,结果面试官上来就问:
同学,你说你精通 H5 ,那你能不能说一下怎么实现 H5 秒开?
在软件开发领域,代码质量一直是开发者们关注的焦点之一。为了更好地评估和管理代码质量,人们逐渐引入了量化指标的概念。
本文将从代码质量的定义、定性方法、量化指标等方面展开讨论。
装饰器用于增强 JavaScript 类的功能,包括类本身、类属性、类方法、类属性存取器、类方法参数以及类属性前缀(accessor,装饰私有属性)等
为什么不能装饰普通函数,可以看下文
参见示例,感受下写法
// 装饰类
@frozen class Foo {
// 装饰属性
@readonly x = 1;
// 装饰类方法
@throttle(500)
@log(true)
expensiveMethod(@withParam() name: string) {} // 装饰类方法参数
// 装饰属性存取器
@foo
get x() {}
@foo2
set x(val) {}
/**
* 装饰类属性前缀,相当于声明属性 y 是私有属性 #y 的存取接口
* 等价于
* #y = 1;
* get y() { return this.#y; }
* set y(val) { this.#y = val; }
*/
accessor y = 1;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
最近在研究微前端的样式隔离方案,看到了这样一个评论:
大意是说 Vue scoped 的 data-v-xxx
是根据文件相对路径计算的,如果微前端的两个 Vue 子项目采用相同的路径结构,那么算出来的 data-v-xxx
是一样的,可能会导致样式冲突。
在之前的项目经历中,接触了比较多的 Hybrid 业务,因此系统性地整理了下大厂 Hybrid 业务涉及的基建和流程。
对西瓜视频业务做下分析和总结(已脱敏),包括以下几个方面:
- 用户特征
- 用户价值
- 获客方式
- 获利方式
- 和抖音的差异
之前写了一篇文章 《如何实现 H5 秒开?
于是,我计划输出「前端首屏优化」专栏系列
作为专栏的第一篇,本文将从客户端角度,聊聊如何借助端能力优化前端首屏加载速度。除了方案介绍,本文还会提供数据收益、注意事项、开发成本等,以帮助大家更好的评估实现优先级,选择适合业务的方案。
上一页
下一页