본문 바로가기

개발하자

svelte에서 변수가 변경되었을 때 console.log('yes')는 어떻게 합니까?

반응형

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)

반응형