「React源码分析」二. React Renderer渲染器react-dom包概览与其主要API的功能及其作用

一. 概览

react-dom 包作为 React 的 DOM 模型渲染器和服务器渲染器的入口点。它旨在与通用 React 包配对,后者作为 react 提供给 npm。也就是说,react 的渲染过程是使用 react-dom 中提供的一系列API进行的。

react-dom 的 package 提供了可在应用顶层使用的 DOM(DOM-specific)方法,我们在有需要的情况下可以把这些方法用于 React 模型以外的地方。不过一般情况下,大部分组件都不需要使用这个模块。

二. 安装和使用

使用npm命令安装 react 和 react-dom :

npm install react r[......]

继续阅读

「React源码分析」一. React开源项目概览

2021SC@SDUSC

React简介

正如React项目官网所说,React是一个「用于构建用户界面的 JavaScript 库」。人们往往也会将React与Vue、Angular作为前端三大框架进行对比(但如今Angular的热度也越来越小了,而前两者的社区规模和热度仍在不断发展壮大)。React相对其他前端框架(说前端框架其实并不准确,因为React早已不再单纯地面向“前端”,本身也并不是所谓的“框架”)来说,不仅写法上更灵活,语法也更贴近ES标准,对Typescript也有着更好的支持。

同时,React本身在整体架构设计上更有优势,React日益庞大而成熟的技术栈便是得益于此。在浏[……]

继续阅读

白嫖算法设计与分析

因为这学期选了不少其他限选课,再加上这门课听不少人说考试挺鬼畜的(全考算法证明题),老师挂科率也高(高达30%+),就算过了得分也不好看(均分75) 所以没选,但毕竟还是挺有用的感觉,所以跟着舍友旁听了。
虽说不用交作业不用考试,但还是开个笔记好好学下……(虽然还是分而治之和图算法占大半篇幅

1.渐进表示法

  • \Omicron表示法

定义:

\Omicron (g(n)) = \{f(n): 存在正数c和n_0,使得当n \ge n_0时0 \le f(n) \le cg(n)恒成立 \}

表示时间复杂度最好的情况,即f(n)总在cg(n)的下方

山大校内网socks5代理端口被滥用

最近发现服务器异常卡顿甚至无响应,经检查发现原本用于山大校内网而完全对外开放代理的1080端口被滥用。因此将该端口默认封闭,需要使用的同学请通过邮箱联系我,并提供自己的IP地址,我将审核并加入白名单。

此外,校内网端口映射服务(https://sdu.herui.club)正常开放。需要的同学可以直接使用该服务。

[……]

继续阅读

组合数学(待完成)

  • 计数原理:加法计数原理(分类),乘法计数原理(分步),减法计数原理,除法计数原理

  • 排列组合:

与顺序有关的摆放或选择称 排列(Permutation)。

P(n,r)=\dfrac{P(n,n)}{P(n-r,n-r)}=\dfrac{n!}{(n-r)!}

规定P(n,r)=0\ \text{when}\ n<r

与顺序无关的摆放或选择称 组合(Combination)。

\begin{pmatrix}n\\r\end{pmatrix}=\dfrac{P(n,r)}{P(r,r)}=\dfrac{n!}{r!(n-r)!}

规定`$$\begin{pmatrix}n\r\e[……]

继续阅读

VMware Player安装MacOS Catalina (10.15.5)

很简单,只需要3个东西:

1.VMware Player

直接去官网安装即可,免费版不用许可证

2.VMware Unlocker

用来向VMware添加Macos虚拟机的选项。

在这里下载:Releases · paolo-projects/auto-unlocker (github.com)

3.MacOS ISO镜像文件

在这里下载(可能需要翻墙):Download macOS Catalina ISO Image -Latest – wikigain

或者等我传上山大云盘再分享下载链接

以上三样准备好后,先点开VMware Unlocker,它会自动[……]

继续阅读

学生在线前端开发部第一次例会

0. 预备内容

– Git

  1. Git是什么?
    Git是一个代码版本控制系统,可以方便地管理代码迭代和实现协同工作。我们可以使用Git实现代码备份和代码版本控制(更新、回退、合并、切换分支等等)

  2. Git的工作流
    你的本地仓库由 git 维护的三棵“树”组成。第一个是你的工作目录(work[......]

    继续阅读