jsx

JS中的执行上下文

淺唱寂寞╮ 提交于 2020-10-05 07:15:02
在这篇文章中,我将深入探讨JavaScript中一个最基本的部分,即Execution Context。 在本文结束时,您应该更清楚地知道解释器是怎么工作的,为什么某些函数/变量在声明之前就可以使用以及它们的值是如何确定的。 一:什么是执行上下文? 当JavaScript代码运行的时候,确定它运行所在的环境是非常重要的。运行环境由下面三种不同的代码类型确定 全局代码(Global Code):代码首次执行时候的默认环境 函数代码(Function Code):每当执行流程进入到一个函数体内部的时候 Eval代码(Eval Code):当eval函数内部的文本执行的时候 您可以在网上找到大量关于 scope 的参考资料。为了更易于理解,我们将execution context简单视为运行当前代码的environment/scope。好了,话不多说,先让我们看个例子,其中包含了global context和function/local context 代码。 Example 1 在上图中,我们有1个全局上下文(Global Context),使用紫色边框表示;有3个不同的函数上下文(Function Context)由绿色,蓝色,和橙色边框表示。注意!全局上下文有且只有一个,程序中其他任意的上下文都可以访问全局上下文。 你可以拥有任意数量的函数上下文。每一次 函数调用

手写React的Fiber架构,深入理解其原理

早过忘川 提交于 2020-10-04 03:32:01
熟悉React的朋友都知道,React支持jsx语法,我们可以直接将HTML代码写到JS中间,然后渲染到页面上,我们写的HTML如果有更新的话,React还有虚拟DOM的对比,只更新变化的部分,而不重新渲染整个页面,大大提高渲染效率。到了16.x,React更是使用了一个被称为 Fiber 的架构,提升了用户体验,同时还引入了 hooks 等特性。那隐藏在React背后的原理是怎样的呢, Fiber 和 hooks 又是怎么实现的呢?本文会从 jsx 入手,手写一个简易版的React,从而深入理解React的原理。 本文主要实现了这些功能: 简易版Fiber架构 简易版DIFF算法 简易版函数组件 简易版Hook: useState 娱乐版 Class 组件 本文代码地址: https://github.com/dennis-jiang/Front-End-Knowledges/tree/master/Examples/React/fiber-and-hooks 本文程序跑起来效果如下: JSX和creatElement 以前我们写React要支持JSX还需要一个库叫 JSXTransformer.js ,后来JSX的转换工作都集成到了babel里面了,babel还提供了 在线预览的功能 ,可以看到转换后的效果,比如下面这段简单的代码: const App = ( <div>

Scratch3.0开发记录(二)添加登录功能之创建窗口

早过忘川 提交于 2020-10-03 10:23:47
本文是Scratch3.0二次开发添加登录功能部分——添加点击登录按钮弹窗功能,下一篇会介绍添加接口部分以及登录接口怎么写。 0. 写在前面 借鉴:http://www.liyblog.top/ 感谢!希望能一直更新。 因为我对react本身不如vue那么熟悉,而且今日来感觉react比vue要繁琐很多,相关资料和帖子也远不如vue多,所以走了些弯路,如今总结一下,过程中可能不是很规范正确,产生一些问题,希望各位评论指出来, 当然如果有更好的办法和帖子麻烦也在评论添加地址,我也去学习一下,总之希望能一起学习成长。我的邮箱:yh709459462@163.com。 1. 基本文件结构 因为是借鉴上边大佬的博客http://www.liyblog.top/p/22,我暂时时间比较紧不做赘述,以后再完善。所以各位有需要的先去按照他的教程,一步步往下走,大致是一样的,但是因为我和另一个人按教程走完后并不能成功,所以我做了一些改动。 整个博文内容较多,有点格式问题请谅解 按照上边的教程,走的差不多了之后,跟着我往下走。我的顺序可能是纯粹的改动,不会根据react运行流程去一个文件跳一个文件的改,这样更快,看上面的博文就能理解了文件跳转了。改动主要如下: (1)componets/login-modals目录以及里面的 login-modals.jsx更改名字为login。其他文件不用动。

Vue学习—深入剖析JSX

旧城冷巷雨未停 提交于 2020-09-27 16:58:28
深入剖析JSX 一、深入剖析JSX 1.插值 2.指令 1..v-text 2..v-html 3.v-show 4.v-if 5.v-for 6.v-on 7.v-bind 8.v-model 9.v-slot 10.v-pre 11.v-cloak 12.v-once 2.Ref 3.自定义指令 4.过滤器 5.插槽 一、深入剖析JSX Vue中使用JSX语法。可以让我们回到更接近模板的语法上。 render ( ) { return ( < h1 > 这是一个标题 < / h1 > ) } 1.插值 < div > { this . value } < / div > 2.指令 在JSX中,一些指令并不存在,所以我们可以换一种方式来处理。 1…v-text < div domPropsTextContent = " <p>i am a p</p> " > </ div > 2…v-html < div domPropsInnerHTML = " <p>i am a p</p> " > </ div > 3.v-show jsx支持v-show指令: < div v-show = {this.show} > </ div > 4.v-if <!-- v-if --> {true && < div > div </ div > } {true ? < div > div </