목차
실용적인 전투
setup
웹 프론트엔드 View.js ChatGPT가 Vue3 소스 코드를 해석하도록 하는 방법

ChatGPT가 Vue3 소스 코드를 해석하도록 하는 방법

May 10, 2023 pm 05:52 PM
vue3 chatgpt

실용적인 전투

setup

setup 기능은 어디에 있나요? 구현 기능 이름을 몰라서 ChatGPT에 문의했습니다: setup 函数在什么位置呢,我们不知道他的实现函数名称,于是问一下 ChatGPT:

ChatGPT가 Vue3 소스 코드를 해석하도록 하는 방법

ChatGPT 告诉我,setup 函数在packages/runtime-core/src/component.ts 文件中。众所周知,runtime-core是 Vue3 的运行时核心代码。我们进去看一眼。

按照它所说的,我们找到了 setupComponentcreateComponentInstance 函数,并没有找到 setupRenderEffect 函数,ChatGPT 的只知道 2021 年以前的知识,Vue3 代码经过了很多变动,不过没关系,这不影响太多。

ChatGPT 告诉我,setupComponent 函数是在createComponentInstance函数中执行的,createComponentInstance看名字是创建组件实例,看一下详细代码。

直接复制给 ChatGPT:

ChatGPT가 Vue3 소스 코드를 해석하도록 하는 방법

我们根据 ChatGPT 的解释来阅读代码,发现createComponentInstance只是创建了组件的实例并返回。并没有像它上面说的在函数中执行了 setupComponent,笨笨的 ChatGPT。

那就自己找一下setupComponent是在哪里被调用的。

可以packages/runtime-core/搜一下函数名,很快就找到了。在packages/runtime-core/src/renderer.ts文件中的mountComponent函数中。

mountComponent 是挂载组件的方法,前面还有一堆自定义渲染器的逻辑,不在此篇展开。

  const mountComponent: MountComponentFn = (...args) => {
    const instance: ComponentInternalInstance =
      compatMountInstance ||
      (initialVNode.component = createComponentInstance(
        initialVNode,
        parentComponent,
        parentSuspense
      ))
    // ... 省略代码
    // resolve props and slots for setup context
    if (!(__COMPAT__ && compatMountInstance)) {
        // ...这里调用了setupComponent,传入了实例,还写了注释,感人
      setupComponent(instance)
    }
    // setupRenderEffect 居然也在这
    setupRenderEffect(
      instance,
      initialVNode,
      container,
      anchor,
      parentSuspense,
      isSVG,
      optimized
    )
  }
로그인 후 복사

mountComponent函数先调用了createComponentInstance, 返回个组件实例,又把实例当作参数传给了 setupComponent。顺便我们还在这发现了 ChatGPT 搞丢的setupRenderEffect函数,它是用来处理一些渲染副作用的。

回到 setupComponent函数,Evan 的注释告诉我们它是处理 props 和 slots 的。

export function setupComponent(
  instance: ComponentInternalInstance,
  isSSR = false
) {
  isInSSRComponentSetup = isSSR
  const { props, children } = instance.vnode
  const isStateful = isStatefulComponent(instance)
  initProps(instance, props, isStateful, isSSR)
  initSlots(instance, children)
  const setupResult = isStateful
    ? setupStatefulComponent(instance, isSSR)
    : undefined
  isInSSRComponentSetup = false
  return setupResult
}
로그인 후 복사

把代码喂给 ChatGPT:

ChatGPT가 Vue3 소스 코드를 해석하도록 하는 방법

setupComponent 函数中,处理完 props 和 slots 后,根据是否是有状态组件调用了setupStatefulComponent

直接整个 setupStatefulComponent喂给 ChatGPT:

ChatGPT가 Vue3 소스 코드를 해석하도록 하는 방법

太长了,大概意思:

  • 创建了代理缓存accessCache,干嘛用的咱也不知道,可以问 ChatGPT

  • 创建公共实例代理对象(proxy)

  • 执行组件的 setup()

后续操作是调用 handleSetupResultfinishComponentSetup

ChatGPT가 Vue3 소스 코드를 해석하도록 하는 방법🎜🎜ChatGPT에서 setup 기능이 다음과 같다고 말했습니다. packages/runtime -core/src/comComponent.ts 파일에 있습니다. 우리 모두 알고 있듯이 runtime-core는 Vue3의 런타임 핵심 코드입니다. 들어가서 살펴보자. 🎜🎜말씀에 따르면 setupComponentcreateComponentInstance 함수는 찾았지만 setupRenderEffect 함수는 찾지 못했습니다. ChatGPT는 2021년 이전에만 알고 있습니다. 지식에 따르면 Vue3 코드는 많은 변경을 거쳤지만 문제가 되지 않습니다. 이는 큰 영향을 미치지 않습니다. 🎜🎜ChatGPT에서는 createComponentInstance 함수에서 setupComponent 함수가 실행된다고 했는데, createComponentInstance라는 이름이 구성 요소 인스턴스를 생성하는 것처럼 보입니다. 자세한 코드를 살펴보세요. 🎜🎜ChatGPT에 직접 복사: 🎜🎜ChatGPT가 Vue3 소스 코드를 해석하도록 하는 방법 🎜🎜ChatGPT의 설명에 따라 코드를 읽어보니 createComponentInstance가 해당 구성 요소의 인스턴스를 생성하고 반환하는 역할만 하는 것으로 나타났습니다. 위에서 말한 것처럼 함수에서 setupComponent를 실행하지 않습니다. 멍청한 ChatGPT입니다. 🎜🎜그런 다음 setupComponent가 호출되는 위치를 알아보세요. 🎜🎜 packages/runtime-core/에서 함수명을 검색하시면 빠르게 찾으실 수 있습니다. packages/runtime-core/src/renderer.ts 파일의 mountComponent 함수에서. 🎜🎜mountComponent는 구성요소를 마운트하는 방법입니다. 그 앞에는 다양한 사용자 정의 렌더러 로직이 있지만 여기서는 이에 대해 논의하지 않습니다. 🎜rrreee🎜 mountComponent 함수는 먼저 createComponentInstance를 호출하고 구성 요소 인스턴스를 반환한 다음 해당 인스턴스를 setupComponent에 매개 변수로 전달합니다. 그런데 우리는 ChatGPT가 여기에서 잃어버린 setupRenderEffect 함수도 발견했는데, 이는 일부 렌더링 부작용을 처리하는 데 사용됩니다. 🎜🎜setupComponent 함수로 돌아가면 Evan의 설명에 소품과 슬롯을 처리한다고 나와 있습니다. 🎜rrreee🎜ChatGPT에 코드 피드: 🎜🎜ChatGPT가 Vue3을 해석하도록 하는 방법 source code🎜🎜setupComponent 함수에서는 props와 Slots를 처리한 후 Stateful 컴포넌트인지 여부에 따라 setupStatefulComponent가 호출됩니다. 🎜🎜전체 setupStatefulComponent를 ChatGPT에 직접 피드합니다. 🎜🎜 ChatGPT가 Vue3 소스 코드를 해석하도록 하는 방법🎜🎜너무 깁니다. 다음 의미일 수 있습니다. 🎜
  • 🎜프록시 캐시 accessCache를 생성하지 않았습니다. 왜 사용되는지 알아보세요. ChatGPT🎜
  • 🎜공용 인스턴스 프록시 개체(프록시) 만들기🎜
  • 🎜구성 요소의 setup()을 실행하세요🎜
🎜다음 작업은 handleSetupResultfinishComponentSetup 반환 렌더링 함수를 호출하는 것입니다. 렌더링 논리부터 시작해 보겠습니다. 🎜

위 내용은 ChatGPT가 Vue3 소스 코드를 해석하도록 하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

이제 ChatGPT를 사용하면 무료 사용자가 일일 한도가 있는 DALL-E 3를 사용하여 이미지를 생성할 수 있습니다. 이제 ChatGPT를 사용하면 무료 사용자가 일일 한도가 있는 DALL-E 3를 사용하여 이미지를 생성할 수 있습니다. Aug 09, 2024 pm 09:37 PM

DALL-E 3는 이전 모델보다 대폭 개선된 모델로 2023년 9월 공식 출시되었습니다. 복잡한 디테일의 이미지를 생성할 수 있는 현재까지 최고의 AI 이미지 생성기 중 하나로 간주됩니다. 그러나 출시 당시에는 제외되었습니다.

ChatGPT와 Python의 완벽한 조합: 지능형 고객 서비스 챗봇 만들기 ChatGPT와 Python의 완벽한 조합: 지능형 고객 서비스 챗봇 만들기 Oct 27, 2023 pm 06:00 PM

ChatGPT와 Python의 완벽한 조합: 지능형 고객 서비스 챗봇 만들기 소개: 오늘날의 정보화 시대에 지능형 고객 서비스 시스템은 기업과 고객 간의 중요한 커뮤니케이션 도구가 되었습니다. 더 나은 고객 서비스 경험을 제공하기 위해 많은 기업이 고객 상담, 질문 답변 등의 업무를 완료하기 위해 챗봇을 활용하기 시작했습니다. 이 기사에서는 OpenAI의 강력한 모델인 ChatGPT와 Python 언어를 사용하여 지능형 고객 서비스 챗봇을 만드는 방법을 소개합니다.

휴대폰에 chatgpt를 설치하는 방법 휴대폰에 chatgpt를 설치하는 방법 Mar 05, 2024 pm 02:31 PM

설치 단계: 1. ChatGTP 공식 웹사이트 또는 모바일 스토어에서 ChatGTP 소프트웨어를 다운로드합니다. 2. 이를 연 후 설정 인터페이스에서 언어를 중국어로 선택합니다. 3. 게임 인터페이스에서 인간-기계 게임을 선택하고 설정합니다. 4. 시작한 후 채팅 창에 명령을 입력하여 소프트웨어와 상호 작용합니다.

ChatGPT와 Java를 사용하여 지능형 챗봇을 개발하는 방법 ChatGPT와 Java를 사용하여 지능형 챗봇을 개발하는 방법 Oct 28, 2023 am 08:54 AM

이 기사에서는 ChatGPT와 Java를 사용하여 지능형 챗봇을 개발하는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. ChatGPT는 자연어를 이해하고 인간과 유사한 텍스트를 생성할 수 있는 신경망 기반 인공지능 기술인 OpenAI가 개발한 Generative Pre-training Transformer의 최신 버전입니다. ChatGPT를 사용하면 적응형 채팅을 쉽게 만들 수 있습니다.

chatgpt를 중국에서 사용할 수 있나요? chatgpt를 중국에서 사용할 수 있나요? Mar 05, 2024 pm 03:05 PM

chatgpt는 중국에서는 사용할 수 있지만 등록할 수 없으며, 홍콩, 마카오에서는 등록을 원하는 경우 외국 휴대폰 번호를 사용하여 등록할 수 있습니다. 등록 과정에서 네트워크 환경을 전환해야 합니다. 외국 IP로.

ChatGPT와 Python을 사용하여 사용자 의도 인식 기능을 구현하는 방법 ChatGPT와 Python을 사용하여 사용자 의도 인식 기능을 구현하는 방법 Oct 27, 2023 am 09:04 AM

ChatGPT와 Python을 사용하여 사용자 의도 인식 기능을 구현하는 방법 소개: 오늘날 디지털 시대에 인공지능 기술은 점차 다양한 분야에서 없어서는 안 될 부분이 되었습니다. 그 중 자연어 처리(Natural Language Process, NLP) 기술의 발달로 기계가 인간의 언어를 이해하고 처리할 수 있게 됐다. ChatGPT(Chat-GeneratingPretrainedTransformer)는 일종의

ChatGPT PHP를 사용하여 지능형 고객 서비스 로봇을 구축하는 방법 ChatGPT PHP를 사용하여 지능형 고객 서비스 로봇을 구축하는 방법 Oct 28, 2023 am 09:34 AM

ChatGPTPHP를 사용하여 지능형 고객 서비스 로봇을 구축하는 방법 소개: 인공 지능 기술의 발전으로 로봇이 고객 서비스 분야에서 점점 더 많이 사용되고 있습니다. ChatGPTPHP를 사용하여 지능형 고객 서비스 로봇을 구축하면 기업이 보다 효율적이고 개인화된 고객 서비스를 제공하는 데 도움이 될 수 있습니다. 이 기사에서는 ChatGPTPHP를 사용하여 지능형 고객 서비스 로봇을 구축하는 방법을 소개하고 특정 코드 예제를 제공합니다. 1. ChatGPTPHP를 설치하고 ChatGPTPHP를 사용하여 지능형 고객 서비스 로봇을 구축합니다.

ChatGPT와 Java를 사용하여 AI 기반 음성 도우미를 개발하는 방법 ChatGPT와 Java를 사용하여 AI 기반 음성 도우미를 개발하는 방법 Oct 27, 2023 pm 06:09 PM

ChatGPT와 Java를 사용하여 인공지능 기반 음성 비서를 개발하는 방법 인공 지능(Artificial Intelligence, 줄여서 AI)의 급속한 발전이 다양한 분야에 진출했으며, 그 중 음성 비서는 널리 사용되는 애플리케이션 중 하나입니다. 이번 글에서는 ChatGPT와 Java를 활용하여 인공지능 기반 음성비서를 개발하는 방법을 소개하겠습니다. ChatGPT는 AI 연구기관 OpenAI가 개발한 자연어를 통한 상호작용을 위한 오픈소스 프로젝트입니다.

See all articles