Ruby 标签
定义和用法
<ruby>
标签定义 ruby
注释(中文注音或字符)。在东亚使用,显示的是东亚字符的发音。与 <ruby>
以及 <rt>
标签一同使用:ruby
元素由一个或多个字符(需要一个解释/发音)和一个提供该信息的 rt
元素组成,还包括可选的 rp
元素,定义当浏览器不支持 “ruby
“ 元素时显示的内容,类似于noscript
标签
<ruby>
标签定义 ruby
注释(中文注音或字符)。在东亚使用,显示的是东亚字符的发音。与 <ruby>
以及 <rt>
标签一同使用:ruby
元素由一个或多个字符(需要一个解释/发音)和一个提供该信息的 rt
元素组成,还包括可选的 rp
元素,定义当浏览器不支持 “ruby
“ 元素时显示的内容,类似于noscript
标签
debounce 与 throttle 是开发中常用的高阶函数,作用都是为了防止函数被高频调用,换句话说就是,用来控制某个函数在一定时间内执行多少次。
事情的起因是一道LeetCode题目,具体如下:
1003. 检查替换后的词是否有效
给定有效字符串 “abc”。
对于任何有效的字符串 V,我们可以将 V 分成两个部分 X 和 Y,使得 X + Y(X 与 Y 连接)等于 V。(X 或 Y 可以为空。)那么,X + “
abc” + Y 也同样是有效的。例如,如果 S = “abc”,则有效字符串的示例是:”abc”,”aabcbc”,”abcabc”,”abcabcababcc”。无效字符串的示例是:”abccba”,”ab”,”
cababc”,”bac”。如果给定字符串 S 有效,则返回 true;否则,返回 false。
FROM指令是整个Dockerfile的入口,必须是第一条指令。其代表新制作镜像的基础镜像。基础镜像可以自己制作,也可以从开源的仓库
pull,例如dockerhub或是国内阿里云的免费仓库。
Docker中存在一种特殊的情况,就是不以任何基础镜像为基准,此时可以第一句话使用:
1 | FROM scratch |
来表示以空白镜像为基础,也就是直接将可执行文件复制进镜像。例如swarm、coreos/etcd等。
我们此次使用react脚手架工具创建一个空白的项目,具体为:
1 | $ create-react-app with-stylus |
创建完空白项目后,我们为项目添加一个我们自己的Remote地址(可选)。
1 | $ git remote add origin GIT_URL |
本文主要通过OutLine和思维导图的方式展现React中事件注册的流程。
一般来说,我们想要去学习 React 的源码的时候,可能会先Build
一下,然后使用源码包下的fixtures
内的测试样例进行调试,但是,不管是production
的build
还是Development
的build
,源码都是被打包在一个文件中的,结构混乱,即使代码没有被压缩,也很难看得懂具体那一个方法是属于哪一个模块的。所以,为何不使用源码包直接来调试源代码呢?
本文将会介绍如何直接使用React
源码包来调试源码。
相关代码以全部放置在:
我们在做原生页面开发的时候,如果涉及到前端的数据动态展现,是如何做的呢?(这里排除了后端直接返回嵌入数据的HTML
页面的模式,比如说PHP
中的模式),比如下面的例子:
1 | <p></p> |
1 | const data = { value: 'hello' } |
通过 JavaScript
原生的DOM
操作方式,将数据动态填充到DOM
中,就是数据(Data
)到模板(DOM
)的绑定,这就是数据单向绑定。
事件冒泡和事件捕获分别由微软和网景公司提出,这两个概念都是为了解决页面中事件流(事件发生顺序)的问题。
比如说,下面的代码:
1 |
|
上面的代码当中一个div
元素当中有一个p
子元素,如果两个元素都有一个click
的处理函数,如果点击了inner
的话,其实outer
也算是被点击了的。那么我们怎么才能知道哪一个函数会首先被触发呢?为了解决这个问题微软和网景提出了两种几乎完全相反的概念。
在浏览器刚被设计出来的时候,那时的网页非常的简单,每个网页的资源占有率是非常低的,因此一个进程处理多个网页时可行的。然后在今天,大量网页变得日益复杂。把所有网页都放进一个进程的浏览器面临在健壮性,响应速度,安全性方面的挑战。
健壮性:现代浏览器大多都是多tab
架构,如果所有的tab
都存在于一个进程内部的话,如果其中的一个tab
崩溃,会影响其他的tab
,为每个tab
分配一个进程,则会有效避免这个问题。
响应速度:这个不赘述。
安全性:由于同一进程内的线程是共享资源与地址空间的,所以如果把不同的网页放在同一进程内,可能会导致数据泄露等问题。