-
Notifications
You must be signed in to change notification settings - Fork 312
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vue3の<script setup>を使うようにする #1065
Comments
📝 IDEとの相性は要チェック |
おお、良さそうですね!! |
調査ありがとうございます!!
|
defineEmitはVueのバージョン違いっぽいです。Vueを3.2.45(最新版)にしたらdefineEmitsになりました。 |
この手の移行は機械的にできるcodemod(ASTベースでコード変換するやつ)が既にあるのでは? |
詳細にありがとうございます!! |
JetBrains系、VS Code、neovimで問題ないようで、開発体験を大きく損なうようなことは起きないはずなので、書き換えしちゃっていいと思います...! |
検証ありがとうございます!! では、割と積極的に置き換えていく方針で進めていきたいと思います!! |
置き換えていく方針ですが、おそらく凄まじい変更量になると思います。 パッと思いつく方法は2つあります。 1. えいやで全部変えるというPRを作ってくださったのが #1069 です。 (VOICEVOXは過去2回こういうことを経験したのですが、どちらも1箇所以上でデグレーションがありました) 2. ファイルをちょっとずつ変更していく±が合計500くらいなら意外と見れます。 これで進めるとかなり嬉しいのですが・・・どうでしょうか・・・? |
よさそうに思います! よりレビュー負荷を下げるなら、ひとまず各ファイル「scriptタグ内の変更のみに絞る」という方法もありそうです。
残ったPascalCaseへの書き換えは単純置換のみになるはずなので、最後に全ファイル一括でやれるかも...? |
置き換えた人から: |
こちらもできるとより良いと思います!! 他のアイデアとして別ブランチで作業することも考えたのですが、これはmainにマージする際にコンフリクトが凄いことになりそうなのでやめといた方がいいかなと思いました。 |
ということで、 ・ファイル単位でscript内を置き換えていく って感じですかね…!! @sevenc-nanashi @k-chop @MT224244 この作業やってってもいいよって方いらっしゃいませんか…! |
方針了解です! 方針決まっていくつか修正箇所はあると思いますが、せっかく #1069 で置き換えしてくださっているので 自分がやるのでも全然大丈夫です 🙋 |
script setup化のやつをファイルごとに出すように分けたいと思いますー。 |
大量のマージコミットが生まれちゃいそうなので、 |
ありがとうございます 🙇 5~8本くらいのPRで行けそうという話だったので 今回のscript setup化の影響は各コンポーネント内に閉じているので新旧混在してても特に問題なく、逐次mainに取り込んでいった方が最後のコンフリクト解消の手間も減りそうかなと思います! |
ですね、コンフリクト解消がすごいことになるかもなので、別ブランチ切り出しはやめたほうが良さそうって感じでいます!
|
そういえばこちらのタスクまだ途中かもです。マルチエンジンが一段落したし再開しても良いかも・・・? |
雑にチェックリストを生成:
|
(間違えてcloseつけちゃってた…) |
内容
VOICEVOXはVue3のComposition APIを使ってコンポーネントを定義しています。
これは1つ大きな課題があります。
この問題は
<script setup>
を使うと解決できます。https://v3.ja.vuejs.org/api/sfc-script-setup.html
emit/propの書き方が変わって、その型定義に若干の修正が必要ですが、問題ない程度だと思います。
Pros 良くなる点
returnが不要になる。
setup()関数のネストが減る。
Cons 悪くなる点
書き直しが必要
実現方法
https://v3.ja.vuejs.org/api/sfc-script-setup.html
The text was updated successfully, but these errors were encountered: