VUE3 시작하기: 제공/주입을 사용하여 구성 요소 간 공유
VUE는 높은 사용 편의성, 강력한 유연성, 탁월한 성능 등의 장점을 갖춘 현대적인 프런트 엔드 프레임워크로, 프런트 엔드 개발자들의 선호도가 높아지고 있습니다. VUE3 버전은 더 나은 성능, 더 나은 아키텍처 디자인을 제공하며 더 사용자 친화적입니다. VUE3는 구성요소 간에 데이터를 공유하는 새로운 방법(제공/주입)을 제공합니다. 이번 글에서는 Provide/Inject의 사용법과 구현 과정을 자세히 소개하겠습니다.
Overview
provide/inject는 구성요소 간 데이터 공유를 위해 VUE3에서 공식적으로 권장하는 방법입니다. VUE2에서는 props/$emit과 Vuex를 통해 컴포넌트 간 데이터 통신을 구현하는 경우가 많습니다. 제공/주입의 가장 큰 특징은 보다 암시적인 방식으로 데이터 공유를 구현하여 코드를 더 읽기 쉽고 유지 관리하기 쉽게 만든다는 것입니다.
provid/inject 사용법
provider/inject 사용법은 매우 간단합니다. 다음은 몇 가지 예입니다.
상위 구성 요소는 데이터를 제공합니다.
<template> <child-component /> </template> <script> import { provide } from 'vue' import ChildComponent from './ChildComponent.vue' export default { components: { ChildComponent }, setup() { provide('message', 'Hello from parent') } } </script>
상위 구성 요소에서는 데이터 제공 메소드를 통해 message라는 메시지를 제공하고 값을 '부모님으로부터 안녕하세요'로 설정하세요. 그런 다음 하위 구성 요소에서 주입을 사용하여 이 데이터를 가져올 수 있습니다.
<template> <div>{{ message }}</div> </template> <script> import { inject } from 'vue' export default { setup() { const message = inject('message') return { message } } } </script>
하위 구성 요소에서는 주입 메서드를 사용하여 message라는 데이터를 가져올 수 있습니다.
하위 구성 요소는 데이터를 제공합니다
<template> <child-component /> </template> <script> import { ref } from 'vue' import ChildComponent from './ChildComponent.vue' export default { components: { ChildComponent }, setup() { const message = ref('Hello from parent') return { message } }, provide: { message: this.message } } </script>
이 예에서는 상위 구성 요소에 message라는 반응형 데이터를 정의하고 해당 값을 'Hello from parent'로 설정합니다. 그런 다음 제공 메소드를 통해 이 데이터를 하위 구성요소에 제공합니다. 하위 구성 요소에서는 주입 메서드를 통해 메시지를 가져와 템플릿에서 사용합니다.
<template> <div>{{ message }}</div> </template> <script> import { inject } from 'vue' export default { setup() { const message = inject('message') return { message } } } </script>
여기서 정의한 메시지 데이터는 반응형입니다.
제공/주입 구현 프로세스
제공/주입 구현은 VUE3의 새로운 응답 시스템에 의존합니다. VUE3에서는 provideParent
/ injectSetupRef
에 의존하여 작업을 제공/주입합니다. ProvideParent 함수는 데이터의 키 이름과 값을 모두 수신하는 제공 메소드와 유사하며, injectSetupRef는 상위 구성요소에서 데이터를 얻는 데 사용됩니다. 구체적인 구현 과정은 다음과 같습니다.
// provide函数 export function provide(key, value) { const vm = getCurrentInstance(); if (!vm) { console.warn(`provide() can only be used inside setup().`); } else { let provides = vm.provides; const parent = vm.parent; if (provides === EMPTY_OBJ) provides = vm.provides = Object.create(parent.provides); provides[key] = value; } } // inject函数 export function inject(key, defaultValue) { const vm = getCurrentInstance(); if (vm) { const provides = vm.parent.provides; if (key in provides) { return provides[key]; } else if (arguments.length > 1) { return defaultValue; } else { console.warn(`injection "${String(key)}" not found.`); } } else { console.warn(`inject() can only be used inside setup() or functional components.`); } }
provide 함수에서는 getCurrentInstance 함수를 통해 현재 인스턴스를 획득하고 제공된 데이터를 현재 인스턴스의 presents 객체에 저장합니다. 현재 인스턴스가 존재하지 않으면 setup 함수에서 Provide 함수가 호출되지 않고 경고 메시지가 반환된다는 의미입니다.
inject 함수에서는 getCurrentInstance 함수를 통해 현재 인스턴스를 얻고 상위 구성 요소의 제공 객체에서 키에 해당하는 값을 얻습니다. key에 해당하는 값이 없으면 defaultValue가 반환됩니다. 현재 인스턴스가 존재하지 않는다면, 설정 함수나 기능 컴포넌트에서 inject 함수가 호출되지 않았음을 의미하며, 경고 메시지가 반환됩니다.
요약
이 글의 소개를 통해 우리는 Provide/Inject가 VUE3 컴포넌트 간에 데이터를 공유하는 훌륭한 방법이라는 것을 알 수 있습니다. 보다 암시적인 방식으로 데이터 공유를 구현하여 코드를 더 읽기 쉽고 유지 관리하기 쉽게 만듭니다. 사용 중에는 제공된 데이터가 반응형이며 중첩된 구성 요소에서 사용될 수 있다는 점에 유의하세요. 동시에, 우리가 제공하는 데이터가 제공에 존재하지 않는 경우 인수[1]에 전달된 매개변수가 기본값으로 사용되므로 항상 유형에 주의해야 합니다. 그리고 매개변수의 값.
위 내용은 VUE3 시작하기: 제공/주입을 사용하여 구성 요소 간 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











VUE는 높은 사용 용이성, 강력한 유연성 및 뛰어난 성능을 갖춘 현대적인 프런트 엔드 프레임워크로, 프런트 엔드 개발자들 사이에서 점점 인기를 얻고 선호되고 있습니다. VUE3 버전은 더 나은 성능, 더 나은 아키텍처 디자인을 제공하며 더 사용자 친화적입니다. VUE3는 구성 요소 간 데이터 공유 기능(제공/주입)을 실현하는 새로운 방법을 제공합니다. 이번 글에서는 Provide/Inject의 사용법과 구현 과정을 자세히 소개하겠습니다. 개요제공/

Vue는 대화형 사용자 인터페이스를 구현하기 위한 풍부한 지침을 제공하는 인기 있는 JavaScript 프레임워크입니다. 그 중 이벤트 처리 명령 v-on을 레이블에 추가하여 이벤트 처리 기능을 바인딩할 수 있습니다. 그러나 때로는 버튼을 클릭할 때마다 해당 이벤트 핸들러를 트리거하는 대신 버튼을 한 번만 클릭하기를 원하는 경우도 있습니다. 그러면 Vue에서 v-on:click.once를 사용하여 이벤트가 한 번만 트리거된다는 것을 어떻게 알 수 있을까요? Vue에서 v-on:click.once를 사용하는 방법

Vue는 단일 페이지 애플리케이션 및 동적 웹사이트를 개발하는 데 널리 사용되는 인기 있는 JavaScript 프레임워크입니다. 그 중 컴포넌트화와 모듈화는 핵심 기능 중 하나입니다. Vue는 단일 파일 구성 요소(SFC)를 사용하여 구성 요소의 모듈화를 구현하고 구성 요소 작성, 유지 관리 및 테스트의 효율성을 향상시킵니다. 이 문서에서는 단일 파일 구성 요소를 사용하여 Vue 구성 요소를 모듈화하는 방법에 대한 팁과 모범 사례를 소개합니다. 단일 파일 구성요소란 무엇입니까? 단일 파일 구성 요소는 다음을 참조합니다.

프론트엔드 기술의 지속적인 개발로 인해 프론트엔드 프레임워크는 현대 웹 애플리케이션 개발의 중요한 부분이 되었습니다. 그 중 Vue.js는 우수하고 가벼운 MVVM 프레임워크로 프런트엔드 개발자들에게 선호됩니다. Vue.js 명령은 Vue.js 프레임워크에서 매우 중요한 기능 모듈입니다. 그 중 v-model, v-if, v-for 및 기타 명령은 Vue.js 애플리케이션 개발에 없어서는 안될 도구입니다. 아래에서는 이러한 명령어의 사용법과 기능을 자세히 분석합니다. 1. v-모

vue의 업로드 기능을 구현하는 방법 웹 애플리케이션이 개발되면서 파일 업로드 기능이 점점 더 보편화되었습니다. Vue는 최신 웹 애플리케이션을 구축하는 편리한 방법을 제공하는 인기 있는 JavaScript 프레임워크입니다. Vue에서는 Vue의 Upload 컴포넌트를 사용하여 파일 업로드 기능을 구현할 수 있습니다. 이 기사에서는 Vue를 사용하여 파일 업로드 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 Vue 프로젝트에 필요한 종속성을 설치합니다. n을 사용할 수 있습니다.

Vue를 사용하여 태그 클라우드 효과를 구현하는 방법 소개: 태그 클라우드는 태그의 인기도나 관련성을 보여주기 위해 다양한 글꼴 크기로 태그를 표시하는 일반적인 웹 페이지 효과입니다. 이 글에서는 Vue 프레임워크를 사용하여 태그 클라우드 효과를 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1단계: Vue 프로젝트 구축 먼저 기본 Vue 프로젝트를 구축해야 합니다. VueCLI를 사용하여 프로젝트 뼈대를 빠르게 생성할 수 있습니다. 명령줄 도구를 열고 다음 명령을 입력합니다: vuecreate

Vue 및 Vue-Router: 컴포넌트에서 라우팅 정보를 사용하는 방법은 무엇입니까? 소개: Vue.js 개발 과정에서 현재 URL 매개변수 획득, 다른 페이지 간 이동 등과 같은 구성 요소의 라우팅 정보를 획득하고 사용해야 하는 경우가 종종 있습니다. Vue.js는 프런트 엔드 라우팅 기능을 구현하기 위한 Vue-Router 플러그인을 제공합니다. 이 기사에서는 라우팅 정보를 얻고 활용하기 위해 구성 요소에서 Vue-Router를 사용하는 방법을 소개합니다. Vue-Router 소개: Vue-Router는 Vue입니다.

Vue3는 최근 매우 인기 있는 프론트 엔드 프레임워크입니다. 가장 큰 특징은 가상 DOM 기술입니다. 즉, Vue는 실제 DOM 트리를 가상 DOM 트리로 변환한 다음 가상 DOM에서 작업한 후 실제 DOM 트리로 변환합니다. 트리.DOM 트리. 이 기술을 사용하면 DOM을 보다 효율적으로 운영할 수 있으며, DOM 수가 많을 때에도 매우 좋은 성능을 얻을 수 있습니다. 하지만 가상 DOM 기술의 특수성으로 인해 DOM을 운영할 때 최신 DO를 바로 얻을 수 없는 경우가 있습니다.
