Vue의 종속성 수정이 적용되지 않으면 어떻게 해야 합니까?

PHPz
풀어 주다: 2023-04-17 10:09:27
원래의
1166명이 탐색했습니다.

Vue.js는 사용자 인터페이스 구축을 위한 인기 있는 오픈 소스 JavaScript 프레임워크입니다. 웹 개발자의 경우 Vue.js는 단일 페이지 애플리케이션은 물론 다중 페이지 애플리케이션용 구성 요소를 만드는 데 매우 효율적일 수 있습니다. 그러나 때로는 Vue.js에서 종속성을 사용할 때 몇 가지 문제가 발생할 수 있습니다. 이 글에서는 Vue.js에서 종속성 수정이 적용되지 않는 문제를 해결하는 방법을 소개합니다.

문제 설명 및 이유

Vue.js의 핵심 기능 중 하나는 반응형 시스템입니다. 관찰 가능한 객체(Vue.js 구성 요소의 데이터)에는 종속성이 추가될 수 있습니다. 이 종속성은 객체가 변경되면 자동으로 업데이트됩니다. 이것이 Vue.js가 애플리케이션 업데이트에 매우 효율적인 이유 중 하나입니다.

그러나 Vue.js를 사용할 때 가끔 이상한 문제가 발생할 수 있습니다. 즉, 종속성을 수정한 후에도 종속성 값이 업데이트되지 않습니다. 이 문제의 근본 원인은 Vue.js에 종속성 수집과 관련하여 몇 가지 제한 사항이 있다는 것입니다. Vue.js 구성 요소가 초기화될 때 존재하는 속성만 감지할 수 있습니다. 구성 요소가 생성된 후 새 속성을 추가하는 경우 종속성을 업데이트하도록 Vue.js에 수동으로 알려야 합니다.

해결책

Vue.js에서 수정된 종속성이 업데이트되지 않는 문제를 해결하려면 다음 방법을 사용할 수 있습니다.

1 Vue.set 또는 this.$set 메서드

Vue.set 또는 this를 사용하세요. .$set 메소드는 종속성이 수정될 때 적용되도록 구성 요소의 속성을 반응형 속성으로 설정할 수 있습니다. 종속성을 수정할 때 다음 구문을 사용하세요.

Vue.set(object, propertyName, value)
this.$set(object, propertyName, value)
로그인 후 복사

여기서 object는 수정할 개체이고, propertyName은 수정할 속성 이름, value는 설정할 속성 값입니다.

2. 변수 참조 사용

변수 참조를 사용하면 Vue.js가 변수의 변경 사항을 모니터링하여 구성 요소 종속성을 올바르게 업데이트할 수 있습니다. 종속성을 수정하는 방법은 값을 변수에 할당한 다음 구성 요소에서 해당 변수를 사용하는 것입니다.

<script>
export default {
  data() {
    return {
      user: {
        name: 'Tom'
      },
      // 在组件中使用变量 $userName,而不是 user.name
      $userName: ''
    }
  },
  mounted() {
    // 在 mounted 阶段更新 $userName 的值
    this.$userName = this.user.name
  }
}
</script>
로그인 후 복사

3. 구성 요소에서 계산된 속성을 사용합니다.

계산된 속성은 종속성을 업데이트하는 효율적인 방법입니다. 계산된 속성은 다른 변수의 값을 기반으로 속성 값을 동적으로 계산하고 종속성을 자동으로 업데이트할 수 있습니다. 계산된 속성을 사용하여 구성 요소에서 계산된 속성을 정의하고 종속 값을 해당 종속성으로 사용합니다.

<script>
export default {
  data() {
    return {
      user: {
        name: 'Tom'
      },
    }
  },
  computed: {
    userName() {
      return this.user.name
    }
  }
}
</script>
로그인 후 복사

user.name 대신 구성 요소에서 계산된 속성 $userName을 사용합니다.

<template>
  <div>{{ $userName }}</div>
</template>
로그인 후 복사
로그인 후 복사

4에서 watch 속성을 사용합니다.

watch 속성은 변수의 변경 사항을 모니터링하여 종속성 변경 사항을 감지할 수 있습니다. watch 속성을 사용하여 구성 요소에서 리스너를 정의하여 변경 사항에 따른 이벤트를 수신합니다.

<script>
export default {
  data() {
    return {
      user: {
        name: 'Tom'
      },
      $userName: ''
    }
  },
  watch: {
    'user.name'(newValue) {
      // 如果 user.name 发生变化,将会更新 $userName 的值
      this.$userName = newValue
    }
  },
  mounted() {
    // 在 mounted 阶段更新 $userName 的值
    this.$userName = this.user.name
  }
}
</script>
로그인 후 복사

user.name 대신 구성 요소에서 $userName 변수를 사용합니다.

<template>
  <div>{{ $userName }}</div>
</template>
로그인 후 복사
로그인 후 복사

Summary

Vue.js는 강력한 응답 시스템을 제공합니다. 개발자가 애플리케이션을 효율적으로 구축할 수 있게 해줍니다. Vue.js를 사용할 때 종속성 변경이 적용되지 않으면 실망스러운 문제가 될 수 있습니다. 이 기사에서는 Vue.set 또는 this.$set 메소드 사용, 변수 참조 사용, 계산된 속성 사용 및 watch 속성 사용을 포함한 몇 가지 해결 방법을 다루었습니다. 이러한 방법이 Vue.js에 적용되지 않는 수정된 종속성 문제를 해결하는 데 도움이 되기를 바랍니다.

위 내용은 Vue의 종속성 수정이 적용되지 않으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!