前情提要
在逛技术社区的过程中遇到这么一个问题:为什么获取createRef
的结果需要多一层current
呢?再回答完题主的问题后,便决定水一篇文章。
注:内容比较简单,如果喜欢点个赞,不喜勿喷。欢迎在评论区内交流。如果本人观点有错误的地方,恳请大佬多多指点,感谢🙏。
再注:文中所有观点都是我个人理解,没有查阅ECMAScript
官方文档。欢迎大佬在评论区内指点交流。
先看下题主的问题:
// 一直搞不明白这个API的设计,这里要多一层current是什么用意,
// 难道除了current外还有别的用法吗?
// 如果只有获取值的用法,为什么不直接简化成myRef1.value拿呢?
const Test: React.FC = () => {
const myRef1 = React.useRef();
const onClick = React.useCallback(() => {
console.log('myRef1', myRef1.current.value)
}, [])
return <>
<input ref={myRef1} type="text" placeholder='点击提示createRef'/>
<button onClick={onClick}>点击获取ref</button>
</>
}
题主的核心问题是为什么要多一层current
?把current
去掉,直接用myRef1.value
不行吗?要想聊明白这个问题,就得聊聊JavaScript
中的基本数据类型和引用数据类型。
前情提要
在逛技术社区的过程中遇到这么一个问题:为什么获取createRef
的结果需要多一层current
呢?再回答完题主的问题后,便决定水一篇文章。
注:内容比较简单,如果喜欢点个赞,不喜勿喷。欢迎在评论区内交流。如果本人观点有错误的地方,恳请大佬多多指点,感谢🙏。
再注:文中所有观点都是我个人理解,没有查阅ECMAScript
官方文档。欢迎大佬在评论区内指点交流。
先看下题主的问题:
// 一直搞不明白这个API的设计,这里要多一层current是什么用意,
// 难道除了current外还有别的用法吗?
// 如果只有获取值的用法,为什么不直接简化成myRef1.value拿呢?
const Test: React.FC = () => {
const myRef1 = React.useRef();
const onClick = React.useCallback(() => {
console.log('myRef1', myRef1.current.value)
}, [])
return <>
<input ref={myRef1} type="text" placeholder='点击提示createRef'/>
<button onClick={onClick}>点击获取ref</button>
</>
}
题主的核心问题是为什么要多一层current
?把current
去掉,直接用myRef1.value
不行吗?要想聊明白这个问题,就得聊聊JavaScript
中的基本数据类型和引用数据类型。
前情提要
在逛技术社区的过程中遇到这么一个问题:第一个for
循环为什么只输出一次呢?看了题主贴的代码后,觉得比较简单所以就回答了一下。回答完之后就萌生了水一篇文章的想法。
注:内容比较简单,如果喜欢点个赞,不喜勿喷。欢迎在评论区内交流。如果本人观点有错误的地方,恳请大佬多多指点,感谢🙏。
先来看第一个for
循环:
for (var i =0; i < 3; i++) {
var i = 3;
console.log(i)
}
思考一下,这段代码中,会打印几次?打印的内容分别是多少?
答案是只打印一次,打印的内容是 3
。那么为什么会这样呢?其实是js
的变量提升机制导致的。至于代码的详细执行步骤,后续给出。这里先不急,再来看第二个for
循环。
for (var i =0; i < 3; i++) {
const i = 3;
console.log(i)
}
思考一下,这段代码中,会打印几次?打印的内容分别是多少?
答案是打印3
次,打印内容都是3
。那么,这又是为什么呢?只是换了一个关键字来声明变量。竟有如此之区别?其实const
声明的变量在代码块中有作用域,并且不存在变量提升机制。如果在const
声明之前去使用该变量会导致js
报错(阮一峰es6
中讲的暂时性死区)。
这是一篇低代码实践文章,根据平时业务抽象出来的一个自动化后台表格页面生成工具。工具的代码构成并没有用到特别高深的技术点,都是平时常用的IO读写操作。
既然是自动化生成表格页面,那么是通过什么方式达到的自动化呢?首先说明一下,“自动化”
这个词,别想象成是一个AI
控制的,无需人类动手的工具。“自动化”
的体现是:用户只需要点击一个按钮,那么工具会自动写入相关业务表格代码逻辑到项目中。
而表格业务逻辑这一块,既然都是业务逻辑了,那么相关业务代码的组成就不会一成不变。所以,我们应该如何根据产品提供的原型、服务端提供的接口文档这两块信息来生成相关业务逻辑代码呢?