目前 Vue3 有没有什么比较标准的书写顺序

2023-06-24 16:28:45 +08:00
 tlerbao

强迫症,大家有没有遵循某种 Vue3 Setup 的书写顺序

<script  lang="ts" setup>
// 比如先 const ref reactive
// 再 const handleCreate = () => {}
// 再生命中期
// 再 emit
// ...
</script>
<template>
    <div></div>
</template>
<style>
</style>
1410 次点击
所在节点    问与答
9 条回复
rimworld
2023-06-24 16:30:41 +08:00
没有遵循某种顺序。 只遵循相关功能的、相关事件的代码放一块。
murmur
2023-06-24 17:36:52 +08:00
这个顺序感觉并不好,因为 template 才是组件的骨肉部分,先看 template 就知道你大体结构和你想干啥,但是 script 看不出来
WhateverYouLike
2023-06-24 17:58:27 +08:00
我的一点感想是:每个 SFC setup 的最外层最终只需要一个 hook 就可以了,该 hook 调用后只暴露出模板所需的变量,其余所有的子状态和方法都封装在子 hook 中,同时注意把多个子 hook 都用到的状态提升一下。宗旨就是功能拆分合理,最大限度地限制状态的作用域。二楼说看 script 看不出来逻辑,但这样做以后,script 跟 template 的照应程度能提升一个档次,阅读 script 时也能一目了然功能有哪些。

至于小 hook 里的书写顺序:等拆成一个个小 hook 之后,每个小 hook 里东西不会很多,顺序就自己规定一下。我一般是 import ,props ,emit ,ref ,usehook ,lifecycle ,method ,不会严格遵循。
Cosmic4764
2023-06-24 18:21:18 +08:00
我自己是这样:
先 import
然后 interface
然后 所有 const:ref 、computed 、function
然后是所有监听和生命周期啥
最后是一些执行的语句
tlerbao
2023-06-24 18:51:33 +08:00
还有没有不同意见
terminals
2023-06-25 09:57:04 +08:00
一般都是先写界面再写功能的,所以我都是把 template 放最前面,script 放中间
AuYuHui
2023-06-25 11:31:42 +08:00
安装 个 antfu 的 eslint 配置, 按照大佬的书写配置
dengshen
2023-06-25 18:15:31 +08:00
@terminals +1 保留 vue2 风格了
tlerbao
2023-06-26 08:28:17 +08:00
@terminals 我是说 script 里面的顺序

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

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

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

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

© 2021 V2EX