vue.js使用中のメモ
1558 ワード
watchリストの
コンポーネントがロードされたばかりのとき、render関数は
SSRモードでは、サービス側が
dataで変更された変数がテンプレートで使用されるか、レンダリング関数にアクセスされると、コンポーネントの再レンダリングがトリガーされ、
コンポーネント間転送値について:親コンポーネントまたは子コンポーネント は、一般に、 このようなデータは、いくつかのデータが複数の非親子構成要素で読み取り/変更される必要がある場合、
immediate
がtrue
である場合、リスニングコールバックはbeforeCreate
とcreated
のライフサイクルの間で実行されます.このリスニングコールバックでサブコンポーネントまたはDOM要素にアクセスするには、this.$nextTick()
を使用します.beforeUpdate
およびupdated
ライフサイクルフック関数は、特にこのようなライフサイクル関数でdata
のデータを変更することはできません.そうしないと、デッドサイクルおよびブラウザのクラッシュを引き起こしやすくなります(beforeUpdate
およびupdated
ライフサイクルがトリガーされ、microtaskキューにタスクが挿入されます).このようなライフサイクルでdata
のデータを変更する必要がある場合は、setTimeout()
の関連操作を考慮することができます(関連操作はmacrotaskに配置され、一般的にブラウザが完全に詰まってしまうことはありません).データがDOMにレンダリングされ、頻繁に変動する場合、beforeUpdate
およびupdated
のライフサイクルフック関数も頻繁に呼び出され、パフォーマンスの低下の問題になりやすい.コンポーネントがロードされたばかりのとき、render関数は
beforeMount
とmounted
の間で実行され、その後、データが更新されるたびに実行され、beforeUpdate
とupdated
の間で実行される.SSRモードでは、サービス側が
beforeCreate
とcreated
のライフサイクルフック関数を実行した後、render関数生成ページの内容を直接実行します.dataで変更された変数がテンプレートで使用されるか、レンダリング関数にアクセスされると、コンポーネントの再レンダリングがトリガーされ、
beforeUpdate
およびupdate
のライフサイクルがトリガーされます.コンポーネント間転送値について:
data
の値を直接変更することは推奨されず、コードのメンテナンスが困難になりやすい.props
によって親コンポーネントから子コンポーネントにデータを送信し、$emit
イベントによって子コンポーネントから親コンポーネントに値を送信することができる.ここでは、v-model
の機能と.sync
の修飾子の機能を独自のコンポーネントに実現し、コードのメンテナンス性を向上させるために、より多くのPropとカスタムイベントの使い方があります.vuex
に入れることが考えられる.