リストから詳細ページに入り、パラメータを運びます。リストページを固定位置に保つためにパッケージを使用します。この場合、詳細ページに入るときにパラメータを取得するルートをリッスンするkeep-alive
必要があります。watch
watch: {
$route: {
handler() {
// do some thing
},
immediate: true // 立即监听
}
}
ただし、
現在のルートが監視されており、前
のページに戻ったときにもトリガーされるため、パラメータが失われ、ビジネス ロジック エラーが発生する可能性があります。私の最初の反応は、関数本体で判断し、対応するコードを実行しないことです。1 回の操作の後、目標は達成されますが、それでもトリガーされます。プログラマーとしてこれは許されないので、どうやって削除するか考えてみました。!!watch
handler
watch
watch
document.removeListenr
data() {
return {
watchRoute: () => {}
}
}
// 定义监听函数
created() {
this.watchRoute = this.$watch(
// 此处被监听的对象必须是一个函数,否则会报错
() => {
return this.$route
},
() => {
// do some thing
}, { immediate: true })
}
destroyed() {
// 页面销毁时调用监听函数,就可以移除watch
this.watchRoute()
}
ここに別のナレッジ ポイントを挿入します。keep-alive
コンポーネントは実行されずdestroyed
、created
関数は 1 回だけ実行されます。それぞれ(アクティブ化) および(非アクティブ化) 関数
に置き換えられます。activated
deactivated