LoginSignup
3
6

More than 3 years have passed since last update.

Vue.js・Nuxt.js ハマりポイントまとめ

Last updated at Posted at 2019-07-04

Vue.js や Nuxt.js で開発していてハマったポイントを雑多にまとめています。(随時追加予定)

props を子コンポーネントにそのまま流したい

具体的な例をあげると、UI コンポーネントをラップしたコンポーネントを作りたい場合などです。

こういうときは、$attrs を使うとよいです。

https://isoppp.com/note/2018-12-16/what-is-vue-attrs/

computed は型アノテーションが必須

明らかに推論できるような場合でも、型アノテーションが必須です。

記述していない場合はエディタがエラーを表示します。

computed: {
  fullName(): string { // 明らかに string を返すが、アノテーションは必須
    return `${firstName} ${lastName}`;
  }
}

正しく Vue コンポーネントを記述しているのに何かエラーになる場合、これが原因のことが多いです。

リロードした時だけ動かない

具体的な例をあげると、「リロードした時だけ動かない。他のページから遷移してきた場合は動く。」のようなケースです。

これは、SSR と CSR に起因しているケースが多いです。

サーバーサイド(クライアントサイド)でしか実行してはいけない関数を実行してしまっていないか確認しましょう。例えば、サーバーサイドで window オブジェクトにアクセスしているとかです。

テーブル周りでエラーになる

theadtbody を書けば直ることがあります。

Vue では、自動的にこれらを補完するため、SSR と CSR で DOM が一致せず、エラーになります。

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6