0%

贪心算法(Greedy Algorithm)是一种在每一步选择中都采取在当前状态下最好或最优的选择,从而希望导致结果是全局最好或最优的算法。本文将从概念到实践,全面讲解贪心算法的思想、适用场景及常见题型。

阅读全文 »

各种数据结构,不管是队列,栈等线性数据结构还是树,图的等非线性数据结构,从根本上底层都是数组和链表。不管你用的是数组还是链表,用的都是计算机内存,物理内存是一个个大小相同的内存单元构成的。而数组和链表虽然用的都是物理内存,都是两者在对物理的使用上是非常不一样的。

阅读全文 »

1. PWA 概述

PWA(Progressive Web Application,渐进式网页应用) 不是特指某一项技术,而是应用了多项技术的 Web App。其核心技术包括 App ManifestService WorkerWeb Push等。自 2015 年以来,PWA 相关的技术不断升级优化,在用户体验和用户留存两方面都提供了非常好的解决方案。PWA 可以将 WebApp 各自的优势融合在一起:渐进式、可响应、可离线、实现类似 App 的交互、即时更新、安全、可以被搜索引擎检索、可推送、可安装、可链接。

阅读全文 »


title: 前端安全
categories:

  • 前端安全

    tags:

  • 前端安全

  • 浏览器

  • 算法

  • XSS

  • CSRF

  • 网络安全


本文全面介绍了前端安全的各个方面,包括加密算法、常见攻击方式及其防御措施,以及现代前端安全最佳实践。

阅读全文 »

在公司实习时,参与的第一个任务是负责从头搭建某医疗机构的 h5 页面端。h5 端和 pc 端的页面仅供浏览信息使用,不像 app 端有用户注册登录及一系列交互操作的页面,因此整体难度不高。因为上司没有指明要使用何种框架,所以我照搬了公司用来测试前端实习生水平的一个伪项目所用的框架——Nuxt。本文用来梳理在搭建这个 Nuxt 项目时需要了解的一些知识点。

阅读全文 »

第一次接触 uniapp 项目,同时也是第一次开发 APP,难免会碰到很多问题。发现并解决问题的过程略有艰辛但又带点成就感。在此简要记录所遇到的一些问题和相应解决方案,与君共勉。

阅读全文 »

一、通过 URL 传递

1. 传递基本类型

1
2
3
4
5
6
7
8
9
10
11
12
13
// 在起始页面 prev.vue 跳转到 next.vue 页面并传递参数
uni.navigateTo({
url: 'pages/next?id=1&name=uniapp'
});

// 在 next.vue 页面接受参数
export default {
onLoad: function (option) { // option 为 object 类型,会序列化上个页面传递的参数
console.log(option.id); // 打印出上个页面传递的参数。
console.log(option.name); // 打印出上个页面传递的参数。
}
}

阅读全文 »

(一)MVVM 模式

1. MVVM 是什么

MVVM(Model-View-ViewModel)是一种软件架构模式,它可以将图形用户界面(GUI)的开发(视图)与业务逻辑或后端逻辑(模型)的开发分离,使视图不依赖于任何特定的后端逻辑。这种模式的核心思想是将视图与模型分离,以便在不影响视图的情况下修改模型。在 MVVM 中,视图和模型之间的通信是通过一个称为“绑定”的机制实现的。绑定机制允许视图自动更新,而无需编写大量的代码来处理这些更新。

你可以将 MVVM 看作是 MVC(Model-View-Controller)模式的变体,其中控制器被视图模型(ViewModel)替换。在 MVC 中,控制器负责处理用户输入并更新模型和视图。在 MVVM 中,ViewModel 负责处理用户输入并更新模型和视图。它萌芽于 2005 年微软推出的基于 Windows 的用户界面框架 WPF,前端最早的 MVVM 框架 knockout 在 2010 年发布。

阅读全文 »

渲染真实 DOM(Document Object Model)的开销是很大的。有时修改某个数据,如果直接渲染到真实 DOM 上会引起整个 DOM 树的重绘和重排。而 diff 算法可以只更新修改的那一小块 DOM,而非更新整个 DOM。

阅读全文 »

混合 mixins 和继承 extends

看看官方文档怎么写的,其实两个都可以理解为继承,mixins 接收对象数组(可理解为多继承),extends 接收的是对象或函数(可理解为单继承)。

阅读全文 »