반응형
svelte에서 변수가 변경되었을 때 console.log('yes')는 어떻게 합니까?
let c = 0;
$: console.log(c);
만약 우리가 그것이 변경되었을 때의 값을 인쇄하고 싶다면, 우리는 위와 같이 쓸 수 있습니다.
지시문에서 문자 그대로 사용되기 때문에 이 문장은 에 반응할 수 있습니다.
하지만 만약 내가 언제 바뀌기를 원한다면?
let c = 0;
$: console.log('yes');
분명히, 그 진술은 에 반응하지 않는다.
게다가, 만약 내가 여전히 그것을 기능에 넣는다면:
let c = 0;
function log() {
console.log(c);
}
$: log();
또한 에 반응하지 않습니다.
그렇다면 반응 코드에 반응하고 싶은 변수가 문자 그대로 포함되어 있지 않다면 어떻게 해야 할까요?
다음과 같이 할 수 있습니다:
let c = 0;
$: if (c >= 0) {
console.log("yes");
}
나는 최근에 svelte를 가지고 놀다가 속성이 바뀌면 함수를 호출해야 했다. Vue에서는 당신이 그것을 할 것이지만, 나는 Svelte에서 동등한 것을 찾을 수 없었다. 제 프로젝트에서는 다음과 같은 작업을 수행했습니다:
let c = 0;
$: if (c) {
console.log("yes");
}
하지만 나는 이것이 옳은 방법인지 아닌지 100% 확신할 수 없다. 내가 알고 싶은 것처럼 리치 해리스가 여기서 종소리를 내기를 바란다.
, 스벨테 제작자 리치 해리스의 대답은 다음과 같다:
그 상황을 처리하는 가장 일반적인 방법은 약간 이상하게 느껴진다는 것이다, 나도 알아 :)
또한 원하는 것이 무엇이든 내부에서 변경 변수를 사용하는 경우에도 작동합니다:
let c
$: if (condition) console.log(c)
반응형
'개발하자' 카테고리의 다른 글
18번의 반응과 활자체를 가진 감정 (0) | 2023.06.06 |
---|---|
호스트를 지정할 때 Fast API/uvicorn이 작동하지 않음 (0) | 2023.06.06 |
유형 스크립트-eslint를 사용하여 VSCode 편집기에 유형 스크립트 오류가 표시되지 않음 (0) | 2023.06.05 |
노드와 포드 사이의 트래픽을 암호화하도록 Kubernetes를 구성하는 방법은 무엇입니까? (1) | 2023.06.04 |
유형 스크립트에서 'JSX' 유형에 속성이 없다고 불만을 제기합니다.React.createClass를 사용할 때 '내재 요소'? (0) | 2023.06.04 |