国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Svelte 自動訂閱

2023-02-21 15:59 更新

前面的例子中的應用程序可以工作,但有一個微妙的錯誤--?unsubscribe?函數從未被調用。如果該組件被多次實例化和銷毀,這將導致內存泄漏。

修復它的一種方法是使用 ?onDestroy? 生命周期鉤子:

<script>
	import { onDestroy } from 'svelte';
	import { count } from './stores.js';
	import Incrementer from './Incrementer.svelte';
	import Decrementer from './Decrementer.svelte';
	import Resetter from './Resetter.svelte';

	let count_value;

	const unsubscribe = count.subscribe(value => {
		count_value = value;
	});

	onDestroy(unsubscribe);
</script>

<h1>The count is {count_value}</h1>

不過,它開始變得有點樣板化,尤其是當您的組件訂閱了多個 ?stores? 時。相反,Svelte 有一個小竅門——你可以通過在 ?store?名稱前加上 ?$? 來引用 ?store?值:

<script>
	import { count } from './stores.js';
	import Incrementer from './Incrementer.svelte';
	import Decrementer from './Decrementer.svelte';
	import Resetter from './Resetter.svelte';
</script>

<h1>The count is {$count}</h1>

自動訂閱僅適用于在組件的頂級范圍內聲明(或導入)的存儲變量。

您也不限于在標記內使用 ?$count? — 您也可以在 ?<script>? 的任何地方使用它,例如在事件處理程序或響應式聲明中。

任何以 ?$? 開頭的名稱都被假定為引用 store 值。它實際上是一個保留字符——Svelte 會阻止您使用 ?$? 前綴聲明自己的變量。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號