LoginSignup
8
4

More than 5 years have passed since last update.

Vueの疑問(随時更新)

Last updated at Posted at 2018-10-11

Vueインスタンスのel.$mount()の違い

  • ほぼ一緒だけど、.$mount()は「特定の要素がある」もしくは「非同期プロセスが完了させる」という理由でマウントを遅らせたいときに使える。

Difference between .$mount() and el [Vue JS]


ライフサイクルフックで何が起きているのか

インスタンスライフサイクルフック
下の絵の赤い外線で囲まれたところ
vue lifecyle

イベントフック名 説明
beforeCreate すべてのフックの中で一番最初に実行されるフック
data,eventがまだセットされていないのでアクセスできない
created data,eventにアクセスできる
まだテンプレート、DOMはレンダリングされていない
コンポーネントの最初にセットされないといけないdataをここでセット
beforeMount テンプレートがコンパイルされ、初めてレンダリングが起きる
mounted コンポーネント、テンプレート、DOMにアクセスできる
ただし、子コンポーネントが先にマウントされるのですべての子コンポーネントに対してアクセスできる保証はない
.$nextTickを使うとDOMの更新を待ち受けた直後にアクセスできる
beforeUpdate コンポーネントのデータが変わって、DOMが再レンダリングされる前に実行する
再レンダリングされる前の新しい状態のデータが取得できる
updated コンポーネントのデータが変わり、再レンダリングされた直後に起きる
ここでの処理によっては無限ループに陥ることもある
mountedと同様、.$nextTickを使うことでDOMの更新を待ち受けた直後にアクセスできる
beforeDestroy destoryされる直前に呼ばれる
まだコンポーネントの機能とデータを持っている
イベントリスナーを削除するときに使う
destroyed destroyされた後に呼ばれる
該当Vueインスタンスの全てのディレクティブのバインドが解除され、全ての下位Vueインスタンスも削除される

Vue.js 2.0 라이프사이클 이해하기

Vue Parent and Child lifecycle hooks


These relative modules were not foundのエラーが出たときに見直してみること

  1. 原因としてファイル内のパスが間違っていることで起きるエラー
  2. 相対パスで指定しておいたけど、途中でディレクトリ構成が変わってしまい、ファイルの依存関係がおかしくなった可能性がある
  • 安全策として、絶対パスを使いましょう。
絶対パスの例
import Home from '@/components/Home.vue'
@import "~less/variables";

webpack モジュールのパスを絶対パスで指定する方法

フロントエンジニアが3年間チャットワークにメモしてたことを振り返る

8
4
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
8
4