>  기사  >  웹 프론트엔드  >  Vue가 데이터를 추가했지만 업데이트하지 않으면 어떻게 해야 하나요?

Vue가 데이터를 추가했지만 업데이트하지 않으면 어떻게 해야 하나요?

藏色散人
藏色散人원래의
2022-12-22 09:34:403792검색

Vue가 데이터를 추가하지만 업데이트하지 않는 문제에 대한 해결 방법: 1. "this.$set(target, key, value);" 또는 "Vue.set(target, key, value)"를 사용하여 속성을 추가합니다. . 렌더링 시 함수에서 여러 슬롯을 동적으로 사용하고 해당 슬롯에 값을 전달합니다.

Vue가 데이터를 추가했지만 업데이트하지 않으면 어떻게 해야 하나요?

이 튜토리얼의 운영 환경: Windows 10 시스템, Vue 버전 3, Dell G3 컴퓨터.

vue가 데이터를 추가했지만 업데이트하지 않으면 어떻게 해야 하나요?

Vue 데이터가 실시간으로 업데이트되지 않는 문제 해결(데이터는 변경되지만 데이터가 실시간으로 업데이트되지 않음)

1. Vue를 개발에 사용하는 과정에서 발생할 수 있는 상황 :

vue 인스턴스를 생성한 후 데이터가 다시 할당되면 뷰에 자동으로 업데이트되지 않는 경우가 있습니다.

반응형 개체에 속성을 추가하고 이 새 속성도 반응형이며 뷰를 트리거하는지 확인하세요. 업데이트. Vue는 일반적인 새 속성을 감지할 수 없기 때문에 반응형 개체에 새 속성을 추가하는 데 사용해야 하며 vue의 내장 메서드를 사용해야 합니다

2. Vue.set()은 반응적으로 데이터를 추가하고 수정합니다

이번에 우리는 Vue.set()에 필요한 매개변수가 무엇인지 알아야 합니다. 공식 API: https://cn.vuejs.org/v2/api/#Vue-set

Call 메서드: Vue.set(target, key, value) 또는 this.$set(target, key, value);

target: 변경될 데이터 소스(객체 또는 배열일 수 있음)

key: 변경될 특정 데이터

value: 재할당된 값,

호출: this.$set(target, key, value);

보충 지식: vue RenderscopedSlots

render 슬롯의 일반적인 기본 사용법은 다음과 같습니다: this.$slots.default에는 6866ec3fd7998db1e4d631d18f52d374 여러 개의 슬롯을 사용하고 싶은 경우. 슬롯 이름은 고유하게 지정해야 합니다.

렌더링 함수에서 여러 슬롯을 동적으로 사용하고 슬롯에 값을 전달합니다

1. 내 비즈니스 논리:

세 가지 구성 요소를 사용합니다.

구성 요소 A는 구성 요소 B를 호출하고, 구성 요소 B는 구성 요소 C를 호출하고, 구성 요소 C는 자체 캡슐화된 렌더링 구성요소입니다.

구성 요소 A는 자체 맞춤 슬롯을 구성 요소 C에 삽입하려고 합니다. 구성 요소 C는 맞춤 콘텐츠를 렌더링하고 구성 요소 C의 값을 구성 요소 B와 구성 요소 A에 전달합니다. 구성 요소 B는 구성 요소 C의 더 큰 레이어입니다. 캡슐화

A 구성 요소 호출 B 구성 요소

<index-grid>
     <div
      slot="name"
      slot-scope="field"
      class="check-link"
      @click="rowLinkClick"
     >
      <span>{{ field.field.rowData.name }}</span>
     </div>
</index-grid>

A 구성 요소는 B 구성 요소를 참조하고, 슬롯 범위는 B 구성 요소에서 전달된 solt 값을 받으며, Slot="name"은 슬롯 이름을 지정하는 것입니다.

B 구성 요소의 호출 C 구성 요소의 렌더링 기능

<sub-grid ref="indexGridSub">
   <span
    v-for="(item, index) in fields"
    :key="index"
    slot="name"
    slot-scope="field"
   >
    <slot name="name" :field="field"></slot>
   </span>
 
  </sub-grid>

B 구성 요소 범위의 슬롯은 A 구성 요소의 슬롯과 동일한 값을 갖는 경우에만 A 구성 요소의 사용자 지정 슬롯을 허용할 수 있습니다.

필드는 C 구성 요소에서 전달됩니다. value

C 구성요소는 렌더링 함수입니다

h(
     "td",
     {
      style: { width: field.width + "px" },
      class: { borderRight },
      // 作用域插槽格式
      // { name: props => VNode | Array<VNode> }
      scopedSlots: this.$scopedSlots.name,
      // 如果组件是其他组件的子组件,需为插槽指定名称
      slot: &#39;name&#39;
     },
     this.$scopedSlots.name({
      field: field,
      rowData: rowData,
     })
    );

C 구성요소에 의해 전달된 값은 {field: '', rowData: ''}

권장 학습: "vue.js video tutorial"

위 내용은 Vue가 데이터를 추가했지만 업데이트하지 않으면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.