VUE3.0을 빠르게 시작하는 방법:
이 기사를 학습한 배경은 인터뷰에서 나왔습니다. Vue와 React 구성 요소가 상호 운용되고 재사용되어야 하는지, 어떻게 우아하게 구현해야 하는지에 대한 질문을 받았습니다.
개발자가 수동으로 코드를 전송하는 것을 제외하고. 현재는 두 가지 솔루션만 생각할 수 있습니다.
솔루션 1: vue 코드와 반응 코드 변환(구성 요소 라이브러리 동기화)
솔루션 2: vue 구성 요소를 React 프로젝트에서 직접 실행하거나 그 반대로 합니다.
먼저 구현을 살펴보겠습니다.
vue 컴포넌트는 반응에서 정상적으로 렌더링되었고, 버튼도 3번 클릭했습니다 . vue의 응답과 렌더링도 정상이었습니다
구현 원칙은
<div id="vueApp" />
고려한다면 요청 시 도입할 수 있습니다)
new Vue(..).$mount('#vueApp')
import Vue from 'vue/dist/vue.min.js' //완전한 버전을 소개합니다. 그렇지 않으면 vue의 구성 요소 개체 구문을 구문 분석할 수 없습니다. 내보내기 기본 클래스 App 확장 구성 요소 { 생성자(소품) { 슈퍼(소품) } 컴포넌트DidMount() { const Foo = { 템플릿: ` <div> <h1>저는 vue입니다: {{aaa}}</h1> <h1>저는 vue입니다: {{aaa}}</h1> <h1>저는 vue입니다: {{aaa}}</h1> <button @click="aaa++">버튼</button> </div> `, 데이터 () { 반품 { 아아아: 2222 } } } newVue({ 렌더링: h => h(Foo), }).$mount('#vueApp') } 렌더링() { 반품 ( <div> <h1>현재 반응 프로젝트 중</h1> <h1>현재 반응 프로젝트 중</h1> 다음은 vue 구성 요소 <div id="vueApp" />를 렌더링합니다. </div> ) } }
참고:
Vue의
구성 요소 옵션 개체만 지원해야 하는 경우에는 webpack을 구성할 필요가 없습니다.
const Foo = { 템플릿: ` <div> <h1>저는 vue입니다: {{aaa}}</h1> <h1>저는 vue입니다: {{aaa}}</h1> <h1>저는 vue입니다: {{aaa}}</h1> <button @click="aaa++">버튼</button> </div> `, 데이터 () { 반품 { 아아아: 2222 } } }
여기서 고급 버전은 .vue 파일/구성 요소를 지원해야 함을 의미합니다(위의 데모는 직접 구성 요소 옵션 개체이며 .vue 파일이 없습니다).
예: (위의 데모를 계속 사용하고 몇 줄)
import Foo from "./Foo.vue";
import Vue from 'vue/dist/vue.min.js' //정식 버전을 도입하세요. 그렇지 않으면 vue의 구성 요소 개체 구문을 구문 분석할 수 없습니다. "./ Foo.vue"의 Foo; 기본 클래스 내보내기 앱 확장 구성요소 { ... 컴포넌트DidMount() { newVue({ 렌더링: h => h(Foo), }).$mount('#vueApp') } ... }
이를 적용하려면 vue-loader
// webpack.config.js에서 const { VueLoaderPlugin } = require ('vue -로더') 모듈.수출 = { 모드: '개발', 모듈: { 규칙: [ { 테스트: /.vue$/, 로더: 'vue-loader' } ] }, 플러그인: [ // 마법을 위한 플러그인을 포함했는지 확인하세요. 새로운 VueLoaderPlugin() ] }
참고:
테스트할 때는 React scaffolding 프로젝트를 사용하지 말고 webpack.config.js를 처음부터 구성하는 React 프로젝트를 사용하는 것이 좋습니다 .
최신 버전의 scaffolding을 사용할 경우에는 꺼내기를 실행한 후 webpack.config로 이동합니다.
구문
분석하고 vue의 구성 요소 옵션 객체 구문을 직접 사용할 필요가 없으면 추가 vue-loader를 구성할 필요가 없습니다.
.vue 파일을 구문 분석할 필요가 없으면
처음부터 webpack.config.js를 구성하는 반응 프로젝트를 사용하는 것이 좋습니다 .
컴포넌트 옵션 객체 구문을 사용하면 vue-loader의 추가 구성이 필요하지 않습니다.
마지막으로 비교를 위해 vue 프로젝트는 React 프로젝트에서 사용되며 vue 컴포넌트는 React 프로젝트에서 사용됩니다!
webpack.config.js의 로더를 구성해야 합니까? | |
---|---|
React 프로젝트에서 vue 컴포넌트를 사용하는 | 경우 |
에는 | 특히 주의 해야 합니다. |
.vue 파일을 파싱할 필요가 없다면 vue를 직접 사용하면 됩니다. 컴포넌트 옵션 객체 구문을 사용한다면 vue-loader를 별도로 구성할 필요가 없습니다. .vue 파일을 지원 해야 하는 경우 vue-loader를 구성해야 합니다. |
이 문서는 https://juejin.cn/post/7083303446161391623에서 재현됩니다.
작성자: bigtree