이름에서 알 수 있듯이 할아버지-손자 구성 요소는 부모-자식 구성 요소 간의 통신보다 더 깊은 참조 관계를 갖습니다("세대 건너뛰기 구성 요소"라고도 함).
C 구성 요소는 B 구성 요소에 도입됩니다. B 컴포넌트는 A 컴포넌트 렌더링에 도입되는데, 이때 A는 C의 할아버지 수준입니다(더 계층적 관계가 있을 수 있음). props를 사용하면 레벨별로만 전달할 수 있으므로 너무 번거롭습니다. 좀 더 직접적인 의사소통 방법이 필요합니다.
그들 사이의 관계는 다음과 같습니다. Grandfather.vue 아래에 직접 마운트되지 않습니다. 그들 사이에는 Son.vue가 하나 이상 있습니다(여러 개가 있을 수 있음):
Grandfather.vue
└─Son.vue
└─Grandson.vue
로그인 후 복사
상사와의 관계 때문입니다. 하위 일관성, 할아버지-손자 구성 요소 통신 방식은 부모-자식 구성 요소 통신에도 적용 가능하며 할아버지-손자 관계를 아버지-아들 관계로 대체하면 됩니다.
2. 제공 / 주입
이 기능은 두 부분으로 구성됩니다. Grandfather.vue에는 데이터를 제공하는 제공 옵션이 있고 Grandson.vue에는 데이터 사용을 시작하는 주입 옵션이 있습니다.
Grandfather.vue는 제공을 통해 Grandson.vue에 값을 전달합니다(정의된 함수 포함 가능)
Grandson.vue는 Grandfather.vue에 주입을 통해 Grandfather 구성 요소의 이벤트 실행을 트리거합니다.
구성 요소 계층 구조의 깊이에 관계없이 제공을 시작하는 구성 요소는 모든 하위 구성 요소에 대한 종속성 공급자로 사용될 수 있습니다. 이 부분의 내용은 많이 변경되었지만 실제로는 사용하기가 매우 간단합니다. , 유사점도 있습니다:
Parent 구성 요소는 어떤 하위 구성 요소가 제공하는 속성을 사용하는지 알 필요가 없습니다
하위 구성 요소는 주입 속성이 어디서 오는지 알 필요가 없습니다
또한 기억해야 할 한 가지는 제공 및 주입 바인딩이 응답하지 않는다는 것입니다. 이는 의도적인 것이지만 청취 가능한 객체가 전달되면 객체의 속성은 여전히 반응합니다. 3. Initiate Provide 먼저 2.x의 사용법을 살펴보겠습니다:
vue3+vite:src는 require를 사용하여 이미지를 동적으로 가져오고 vue3+vite는 여러 이미지를 동적으로 가져옵니다. vue3을 사용하는 경우 require는 이미지를 사용할 수 없습니다. imgUrl:require(' .../assets/test.png') 와 같은 vue2는 typescript가 require를 지원하지 않기 때문에 가져오므로 이를 해결하는 방법은 다음과 같습니다. waitimport를 사용합니다.
tinymce는 완전한 기능을 갖춘 리치 텍스트 편집기 플러그인이지만,tinymce를 vue에 도입하는 것은 다른 Vue 리치 텍스트 플러그인만큼 원활하지 않습니다.tinymce 자체는 Vue에 적합하지 않으며 @tinymce/tinymce-vue를 도입해야 합니다. 외국 서식 있는 텍스트 플러그인이며 중국어 버전을 통과하지 못했습니다. 공식 웹사이트에서 번역 패키지를 다운로드해야 합니다(방화벽을 우회해야 할 수도 있음). 1. 관련 종속성을 설치합니다. npminstalltinymce-Snpminstall@tinymce/tinymce-vue-S2. 중국어 패키지를 다운로드합니다. 3. 프로젝트 공용 폴더에 스킨과 중국어 패키지를 새로 만들고 다운로드합니다.
Vue로 블로그 프론트엔드를 구현하려면 마크다운 파싱을 구현해야 합니다. 코드가 있는 경우 코드 하이라이팅을 구현해야 합니다. markdown-it, vue-markdown-loader,marked,vue-markdown 등과 같은 Vue용 마크다운 구문 분석 라이브러리가 많이 있습니다. 이 라이브러리는 모두 매우 유사합니다. 여기서는 Marked가 사용되었고, 코드 하이라이팅 라이브러리로 하이라이트.js가 사용되었습니다. 구체적인 구현 단계는 다음과 같습니다. 1. 종속 라이브러리를 설치합니다. vue 프로젝트에서 명령 창을 열고 다음 명령 npminstallmarked-save//marked를 입력하여 markdown을 htmlnpmins로 변환합니다.
페이지를 부분적으로 새로 고치려면 로컬 구성 요소(dom)의 다시 렌더링만 구현하면 됩니다. Vue에서 이 효과를 얻는 가장 쉬운 방법은 v-if 지시어를 사용하는 것입니다. Vue2에서는 v-if 명령을 사용하여 로컬 DOM을 다시 렌더링하는 것 외에도 새 빈 구성 요소를 만들 수도 있습니다. 로컬 페이지를 새로 고쳐야 할 경우 이 빈 구성 요소 페이지로 점프한 다음 다시 돌아올 수 있습니다. 빈 원본 페이지의 beforeRouteEnter 가드. 아래 그림과 같이 Vue3.X에서 새로 고침 버튼을 클릭하여 빨간색 상자 안에 DOM을 다시 로드하고 해당 로딩 상태를 표시하는 방법입니다. Vue3.X의 scriptsetup 구문에 있는 구성 요소의 가드에는
머리말 Vue든 React든, 여러 개의 반복되는 코드를 접하게 되면, 파일을 중복된 코드 덩어리로 채우는 대신, 이러한 코드를 어떻게 재사용할 수 있을지 고민해 보겠습니다. 실제로 vue와 React 모두 컴포넌트를 추출하여 재사용할 수 있지만, 작은 코드 조각이 발견되어 다른 파일을 추출하고 싶지 않은 경우, 이에 비해 React는 동일한에서 사용할 수 있습니다. 파일에서 해당 위젯을 선언합니다. 또는 다음과 같은 renderfunction을 통해 구현합니다. constDemo:FC=({msg})=>{returndemomsgis{msg}}constApp:FC=()=>{return(
최종 효과는 VueCropper 컴포넌트 Yarnaddvue-cropper@next를 설치하는 것입니다. 위의 설치 값은 Vue2이거나 다른 방법을 사용하여 참조하려는 경우 공식 npm 주소: 공식 튜토리얼을 방문하세요. 컴포넌트에서 참조하고 사용하는 것도 매우 간단합니다. 여기서는 해당 컴포넌트와 해당 스타일 파일을 소개하기만 하면 됩니다. 여기서는 import{userInfoByRequest}from'../js/api만 소개하면 됩니다. 내 구성 요소 파일에서 import{VueCropper}from'vue-cropper&
Vue를 사용하여 사용자 정의 요소 구축 WebComponents는 개발자가 재사용 가능한 사용자 정의 요소(customelements)를 생성할 수 있는 웹 네이티브 API 세트의 집합적 이름입니다. 사용자 정의 요소의 주요 이점은 프레임워크 없이도 어떤 프레임워크에서도 사용할 수 있다는 것입니다. 다른 프런트 엔드 기술 스택을 사용하는 최종 사용자를 대상으로 하거나 사용하는 구성 요소의 구현 세부 사항에서 최종 애플리케이션을 분리하려는 경우에 이상적입니다. Vue와 WebComponents는 보완적인 기술이며 Vue는 사용자 정의 요소를 사용하고 생성하는 데 탁월한 지원을 제공합니다. 사용자 정의 요소를 기존 Vue 애플리케이션에 통합하거나 Vue를 사용하여 빌드할 수 있습니다.
vue3+ts+axios+pinia는 무의미한 새로 고침을 실현합니다. 1. 먼저 프로젝트에서 aiXos 및 pinianpmipinia를 다운로드합니다--savenpminstallaxios--save2. AxiosResponse}from"axios";importaxiosfrom'axios';import{ElMess