반응형
Svelte - 액세스 하위 구성 요소의 메서드
나는 단순히 내용을 숨기는 앱을 가지고 있다:
<script>
let shown = false;
function show() {
shown = true;
}
</script>
<svelte:options accessors={true}/>
{#if shown}
<slot/>
{/if}
부모:
<script>
import Hidden from 'Hidden';
let child;
</script>
<Hidden bind:this={child}>
Content
</Hidden>
<button on:click={() => child.shown = true}>Show</button>
그래서 부모님의 영향으로 아이의 것을 쉽게 설정할 수 있다
하지만 메소드는 가치를 설정할 수 있을 뿐만 아니라 마법을 부릴 수 있기 때문에 사용하고 싶습니다
Chrome의 DevTools 덕분에, 나는 모든 컴포넌트들이 일부를 통해 접근할 수 있는 소품들과 메소드들을 가지고 있다는 것을 알게 되었고, 그래서 Hidden의 메소드는 다음과 같이 부를 수 있다:
<button on:click={() => child.$$.ctx[2]()}>Show</button>
하지만 (알다시피) 법적으로 할 수 있는 방법이 있나요?
Hidden.svelte
<script>
let shown = false;
export function show() {
shown = true;
}
</script>
{#if shown}
<slot/>
{/if}
App.svelte
<script>
import Hidden from './Hidden.svelte';
let child;
</script>
<Hidden bind:this={child}>
Content
</Hidden>
<button on:click={() => child.show()}>Show</button>
에의 통화는 실제로 단순화될 수 있지만, 이로 인해 예제에서 무슨 일이 일어나고 있는지 파악하는 것이 더 어려워질 수 있다고 생각했습니다. 할 수 있는 일은 다음과 같습니다:
<button on:click={child.show}>Show</button>
반응형
'개발하자' 카테고리의 다른 글
pip은 mac에서 "pip이 TLS/SSL이 필요한 위치로 구성되어 있지만 python의 ssl 모듈을 사용할 수 없습니다."라는 오류를 표시합니다 (0) | 2023.10.05 |
---|---|
변수 내 테라폼 변수 (1) | 2023.10.05 |
Jupyter 노트북 새 셀 유형 기본값 (0) | 2023.10.04 |
나중을 위해 주피터(IPython) 노트북 세션을 절이거나 저장하는 방법 (0) | 2023.10.03 |
사용자 지정 fastapi 쿼리 매개 변수 유효성 검사 (0) | 2023.10.02 |