二次封装 UI 库,card button 这种组件, 是建一个 vue 文件包一层 ( base-button base-card ),还是写 jsx render 哪种性能好
1
shintendo 2022-08-25 09:57:54 +08:00
我的理解是,template 的写法更“死板”,有利于编译器做静态分析和优化,性能应该是更好的
|
2
molvqingtai 2022-08-25 09:58:37 +08:00 via Android
template 性能更好,在编译时就会把固定的节点抽离出来,不参与 vnode 遍历,jsx 就做不到
|
3
bojackhorseman 2022-08-25 10:00:14 +08:00
当然是 template 了,vue 针对 template 做了优化,用 jsx 就等于放弃了优化
|
4
whywaoxaks 2022-08-25 10:01:10 +08:00
template
|
5
tutou 2022-08-25 10:08:46 +08:00
我就说这帖子怎么看过?原来是群友,我还以为我大早上就头脑混乱了。
|
6
jahnsli OP 群里问,群里问,群里问完 V2EX 问。
|
7
xiaojun996 2022-08-25 10:48:33 +08:00
想都不用想 template 可以在编译时优化
|
8
CHTuring 2022-08-25 11:02:14 +08:00
为什么我要用 Vue 写 tsx 吗?
如果 Volar 没有那么傻逼,稍微没那么占内存,还稍微不那么卡的话,我也愿意用装上插件用模板。 而且 template 的优化根本就可以忽略不计 |
10
CHTuring 2022-08-25 11:07:41 +08:00
@z13zvxc Vetur 不更新了,Vue3 只有一个 Volar 这一个选项,M1 Pro 16G 都不配用它,该卡还是卡。我是 Vue 和 React 都写。所以能写 tsx 的我都用 tsx 代替,还不需要插件支持。
|
11
sjhhjx0122 2022-08-25 11:24:20 +08:00
@CHTuring 卡就算了,反应还慢,最主要到现在自定义指令都没提示,props 定义起来还奇怪,真不知道 ts 到哪里去了
|
12
anguiao 2022-08-25 11:25:47 +08:00 1
还好我用 WebStorm
|
14
CHTuring 2022-08-25 11:39:27 +08:00
@murmur VSCode 用习惯了,话说 webstorm 的光标有没有 cursorSmoothCaretAnimation 这样的选项,太生硬了。
|
15
daliusu 2022-08-25 11:59:54 +08:00
template 性能好,但是我选 jsx ,template 对 ts 的支持感觉很垃圾( webstorm
|
16
caisanli 2022-08-25 12:08:15 +08:00 via iPhone 1
在生产环境就没区别了吧 打包的时候 都会转成 render 函数
|
17
WhateverYouLike 2022-08-25 12:09:46 +08:00 via Android
@molvqingtai 前些日子刚好遇到一个 static hoisting 的小坑。虽然我的用法也是不规范的。
|
18
zhoupeng199 2022-08-25 19:13:15 +08:00
尤雨溪表示,“<script setup> + TS + Volar = 真香”。
|
19
chenjiangui998 2022-08-28 01:51:07 +08:00
@z13zvxc 我用 volar 一点都不卡啊 两台设备 m1 pro + 16g 和 i5 12500h + 64g
|
20
chenjiangui998 2022-08-28 01:52:21 +08:00
@anguiao webstorm template 不支持可选链的 ! 操作符, 用不下去了
|