vue3 jsx 和 template 哪个性能好

2022-08-25 09:41:34 +08:00
 jahnsli

二次封装 UI 库,card button 这种组件, 是建一个 vue 文件包一层 ( base-button base-card ),还是写 jsx render 哪种性能好

3999 次点击
所在节点    Vue.js
20 条回复
shintendo
2022-08-25 09:57:54 +08:00
我的理解是,template 的写法更“死板”,有利于编译器做静态分析和优化,性能应该是更好的
molvqingtai
2022-08-25 09:58:37 +08:00
template 性能更好,在编译时就会把固定的节点抽离出来,不参与 vnode 遍历,jsx 就做不到
bojackhorseman
2022-08-25 10:00:14 +08:00
当然是 template 了,vue 针对 template 做了优化,用 jsx 就等于放弃了优化
whywaoxaks
2022-08-25 10:01:10 +08:00
template
tutou
2022-08-25 10:08:46 +08:00
我就说这帖子怎么看过?原来是群友,我还以为我大早上就头脑混乱了。
jahnsli
2022-08-25 10:16:24 +08:00
群里问,群里问,群里问完 V2EX 问。
xiaojun996
2022-08-25 10:48:33 +08:00
想都不用想 template 可以在编译时优化
CHTuring
2022-08-25 11:02:14 +08:00
为什么我要用 Vue 写 tsx 吗?

如果 Volar 没有那么傻逼,稍微没那么占内存,还稍微不那么卡的话,我也愿意用装上插件用模板。

而且 template 的优化根本就可以忽略不计
z13zvxc
2022-08-25 11:05:02 +08:00
@CHTuring Volar 真的卡的受不了 这也是我转 react 的最大动力
CHTuring
2022-08-25 11:07:41 +08:00
@z13zvxc Vetur 不更新了,Vue3 只有一个 Volar 这一个选项,M1 Pro 16G 都不配用它,该卡还是卡。我是 Vue 和 React 都写。所以能写 tsx 的我都用 tsx 代替,还不需要插件支持。
sjhhjx0122
2022-08-25 11:24:20 +08:00
@CHTuring 卡就算了,反应还慢,最主要到现在自定义指令都没提示,props 定义起来还奇怪,真不知道 ts 到哪里去了
anguiao
2022-08-25 11:25:47 +08:00
还好我用 WebStorm
murmur
2022-08-25 11:31:36 +08:00
@CHTuring 你都买 m1 macbook pro 了,换个 webstorm 试试,不是只有苹果值得花钱的
CHTuring
2022-08-25 11:39:27 +08:00
@murmur VSCode 用习惯了,话说 webstorm 的光标有没有 cursorSmoothCaretAnimation 这样的选项,太生硬了。
daliusu
2022-08-25 11:59:54 +08:00
template 性能好,但是我选 jsx ,template 对 ts 的支持感觉很垃圾( webstorm
caisanli
2022-08-25 12:08:15 +08:00
在生产环境就没区别了吧 打包的时候 都会转成 render 函数
WhateverYouLike
2022-08-25 12:09:46 +08:00
@molvqingtai 前些日子刚好遇到一个 static hoisting 的小坑。虽然我的用法也是不规范的。
zhoupeng199
2022-08-25 19:13:15 +08:00
尤雨溪表示,“<script setup> + TS + Volar = 真香”。
chenjiangui998
2022-08-28 01:51:07 +08:00
@z13zvxc 我用 volar 一点都不卡啊 两台设备 m1 pro + 16g 和 i5 12500h + 64g
chenjiangui998
2022-08-28 01:52:21 +08:00
@anguiao webstorm template 不支持可选链的 ! 操作符, 用不下去了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/875228

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX