이 기사는 Vue의 제공/주입에 대한 학습 내용을 공유합니다. 도움이 필요한 친구들에게 도움이 되기를 바랍니다
최근에 element-ui의 소스 코드를 보고 다음과 같은 속성을 발견했습니다. 그런 다음 확인하세요. the 공식 웹사이트 Provider/inject
provider/inject: 쉽게 말하면 부모 컴포넌트에서는 공급자를 통해 변수를 제공하고, 자식 컴포넌트에서는 inject를 통해 변수를 주입합니다.
하위 구성 요소의 깊이에 관계없이 주입이 호출되는 한 공급자의 데이터를 주입할 수 있다는 점에 유의해야 합니다. 현재 상위 구성 요소의 prop 속성에서만 데이터를 가져오는 것으로 제한되지 않습니다.
우리의 추측을 확인해 보겠습니다.
먼저: 상위 구성 요소를 정의합니다
<template> <p> <childOne></childOne> </p> </template> <script> import childOne from '../components/test/ChildOne' export default { name: "Parent", provide: { for: "demo" }, components:{ childOne } }
여기서 상위 구성 요소에 이 변수를 제공합니다.
두 번째는 하위 구성 요소를 정의합니다
<template> <p> {{demo}} <childtwo></childtwo> </p> </template> <script> import childtwo from './ChildTwo' export default { name: "childOne", inject: ['for'], data() { return { demo: this.for } }, components: { childtwo } } </script>
세 번째는 또 다른 하위 구성 요소를 정의합니다
<template> <p> {{demo}} </p> </template> <script> export default { name: "", inject: ['for'], data() { return { demo: this.for } } } </script>
2개의 하위 구성 요소에서는 jnject를 사용하여 제공에서 제공하는 변수를 삽입하고 이를 데이터 속성에 제공합니다.
공식 웹사이트에는 해당 예제가 Vue 2.2.1 이상에서만 작동한다고 명시되어 있습니다. 이 버전 이하에서는 props와 데이터가 초기화된 후에 주입된 값을 얻습니다.
실행 후 결과 확인
위의 예에서 볼 수 있듯이 상위 컴포넌트에서 호출되는 한 모든 하위 컴포넌트는 상위 컴포넌트의 라이프사이클 동안 Inject를 호출할 수 있습니다. 상위 구성 요소의 값입니다.
관련 권장 사항:
vue 2 Bus.js를 사용하여 비부모-자식 구성 요소 통신 구현
vue.js 및 webpack을 기반으로 한 채팅 예시
Vue.js 모범 사례(만들기 위한 5가지 팁 당신 Vue.js 마스터)
위 내용은 vue에서 제공/주입에 대해 알아보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!