찾다
일반적인 문제vue에는 몇 개의 주요 구성 요소가 있습니까?

Vue에는 4가지 주요 구성 요소가 있습니다. 1. 전역 구성 요소. 전역 구성 요소를 등록하려면 "app.comComponent(...)" 메서드를 사용하세요. 전역 구성 요소는 애플리케이션의 모든 구성 요소 템플릿에서 사용할 수 있습니다. 2. 로컬컴포넌트는 (부모)컴포넌트의 "comments" 옵션에 등록된 컴포넌트이다. 3. 동적 구성 요소는 속성에 대한 다양한 바인딩 값에 따라 렌더링되는 다양한 이름을 가진 구성 요소를 말합니다. 4. 비동기 구성 요소는 페이지가 로드될 때 즉시 렌더링되지 않습니다. 대신 구성 요소에서 논리를 실행하고 페이지에 렌더링하기 전에 일부 비즈니스 논리가 완료될 때까지 기다립니다.

vue에는 몇 개의 주요 구성 요소가 있습니까?

이 튜토리얼의 운영 환경: windows7 시스템, vue3 버전, DELL G3 컴퓨터.

Vue의 구성 요소는 기본적으로 사전 정의된 옵션이 있는 인스턴스입니다. 작고 독립적이며 일반적으로 재사용이 가능한 구성 요소를 사용하여 레이어별로 조립하여 최종적으로 완전한 페이지를 형성합니다.

Vue 애플리케이션이 인식할 수 있도록 먼저 구성 요소를 등록해야 합니다. 구성 요소 등록에는 두 가지 유형이 있습니다.

  • 전역 등록
  • 로컬 등록

전역 구성 요소

(루트 구성 요소에서) 메서드를 사용합니다. 전역 구성요소를 등록하는 app.comComponent('comComponent-Name', {}). 전역적으로 등록된 구성요소는 애플리케이션에 있는 모든 구성요소의 템플릿에서 사용할 수 있습니다. (학습 동영상 공유: vuejs 입문 튜토리얼, 기본 프로그래밍 동영상) app.component('component-Name', {}) 来注册全局组件,全局注册的组件可以在应用中的任何组件的模板中使用。(学习视频分享:vuejs入门教程编程基础视频

其中第一个参数时组件名,推荐遵循 W3C 规范中的自定义组件名(避免与当前以及未来的 HTML 元素发生冲突):字母全小写必须包含一个连字符。第二个参数是组件的配置选项。

const app = Vue.createApp();
app.component('my-component', {
    template: `<h1 id="Hello-nbsp-World">Hello World!</h1>`
});
const vm = app.mount(&#39;#app&#39;)

⚠️ 全局组件虽然可以方便地在各种组件中使用(包括其各自的内部),但是这可能造成构建项目时体积增大,用户下载 JavaScript 的无谓增加。

需要在app.mount('#app') 应用挂载到 DOM 之前进行全局组件的注册

局部组件

在一个(父)组件中组件的 components 选项中注册的组件。

这些子组件通过一个普通的 JavaScript 对象来定义,其接收的参数和全局组件一样,但是它们只能在该父组件中使用,称为局部组件。

对于 components 对象中的每个 property 来说,其 property 名就是自定义元素的名字,其 property 值就是这个组件的选项对象。

const ComponentA = {
  /* ... */
}
const ComponentB = {
  /* ... */
}
const ComponentC = {
  /* ... */
}
// 然后在父组件的 `components` 选项中定义你想要使用的组件
const app = Vue.createApp({
  components: {
    &#39;component-a&#39;: ComponentA,
    &#39;component-b&#39;: ComponentB
  }
})

动态组件

动态组件指根据给属性 is绑定值的不同来渲染不同名称的组件。

内置的标签 <component :is="componentName />"> 用以动态显式不同的组件,通过控制绑定在<strong>属性 <code>is 上的参数值,即可显示相应的同名组件。

属性 is 可以是:

有时候为了在切换时,保存动态组件的状态,例如组件中的输入框的值,可以用标签 <keep-alive></keep-alive> 包裹动态组件

属性 is 还可以用于解决 HTML 元素嵌套的规则限制,将它应用到原生的 HTML 标签上,它的值就是组件名,这样原生标签实际渲染出来的内容就是组件。

因为对于 <ul></ul><ol></ol><table> 和 <code><select></select> 这些元素,其内部允许放置的直接子元素是有严格限制的,如果嵌入其他元素会被视为无效的内容,而提升到外部造成最终渲染问题。但如果我们需要在这些元素中使用组件作为直接子元素,则可以在「合法」的子元素上使用属性 is,指定渲染的实际内容,这时属性 is 用在原生的 HTML 元素上,如 <tr> 其值 <em>需要使用 <code>vue:첫 번째 매개변수는 구성요소 이름이므로 다음을 권장합니다. W3C 사양의 맞춤 구성 요소 이름(현재 및 향후 HTML 요소와의 충돌을 피하기 위해): 문자모두 소문자 하이픈을 포함해야 합니다. 두 번째 매개변수는 구성요소의 구성 옵션입니다.

<table>
  <tr is="vue:blog-post-row"></tr>
</table>

⚠️ 전역 구성 요소는 다양한 구성 요소(자체 내부 포함)에서 편리하게 사용할 수 있지만 이로 인해 프로젝트 빌드 시 프로젝트 크기가 커지고 사용자가 다운로드하는 JavaScript 양이 불필요하게 증가할 수 있습니다.

🎜app.mount('#app') 애플리케이션이 DOM에 마운트되기 전에 전역 구성 요소를 등록해야 합니다.🎜

로컬 구성 요소 🎜🎜(상위) 구성 요소 내 구성 요소의 comminents 옵션에 등록된 구성 요소입니다. 🎜🎜이러한 하위 구성요소는 공통 JavaScript 개체에 의해 정의되어 전역 구성요소와 동일한 매개변수를 받지만 로컬이라는 상위 구성요소에서만 사용할 수 있습니다. 구성 요소. 🎜🎜구성 요소 개체의 각 속성에 대해 속성 이름은 맞춤 요소의 이름이고 속성 값은 이 구성 요소의 옵션 개체입니다. 🎜
// 全局组件
app.component(&#39;async-example&#39;, Vue.defineAsyncComponent(() => {
  return new Promise((resolve, reject) => {
    resolve({
      template: &#39;<div>I am async!</div>&#39;
    })
  })
}))

// 局部组件
import { createApp, defineAsyncComponent } from &#39;vue&#39;

createApp({
  // ...
  components: {
    AsyncComponent: defineAsyncComponent(() => {
      return new Promise((resolve, reject) => {
        resolve({
          template: &#39;<div>I am async!</div>&#39;
        })
      })
    })
  }
})
rrreee

동적 구성 요소🎜🎜동적 구성 요소는 속성에 대한 다양한 바인딩 값에 따라 서로 다른 이름을 렌더링하는 구성 요소를 말합니다. 🎜🎜내장 태그 <comcomponent :is="comComponentName />">는 <strong>속성 <code>is에 대한 컨트롤 바인딩을 통해 다양한 구성요소를 동적으로 표시하는 데 사용됩니다. 에는 동일한 이름을 가진 해당 구성요소가 표시됩니다. 🎜🎜속성 is는 다음과 같습니다: 🎜🎜🎜등록된 구성 요소의 이름🎜🎜옵션 개체🎜🎜🎜때때로 전환하기 위해, 저장하기 위해 구성 요소의 입력 상자 값과 같은 동적 구성 요소의 상태를 보려면 <keep-alive></keep-alive> 태그를 사용하여 동적 구성 요소를 래핑할 수 있습니다. 구성요소. 🎜🎜is 속성은 HTML 요소 중첩의 규칙 제한을 해결하는 데에도 사용할 수 있으며 해당 값은 구성 요소 이름이므로 실제 콘텐츠는 기본 태그는 구성 요소입니다. 🎜🎜 <ul></ul>, <ol></ol>, <table> 및 <code><select></select>의 경우 > 이러한 요소의 경우 직접 하위 요소를 내부에 배치하는 데 엄격한 제한이 있습니다. 다른 요소가 포함되면 유효하지 않은 콘텐츠로 간주되며 외부로 승격되면 최종 렌더링 문제가 발생합니다. 그러나 이러한 요소에서 구성 요소를 직접 하위 요소로 사용해야 하는 경우 "법적" 하위 요소에 is 속성을 ​​사용하여 렌더링할 실제 콘텐츠를 지정할 수 있습니다. is<tr>와 같은 기본 HTML 요소에 사용됩니다. 해당 값에는 <code>vue:라는 접두사가 붙어야 합니다. 구문 분석되는 것은 실제로 Vue 구성 요소입니다. 🎜🎜rrreee🎜그러나 위의 제한 사항은 HTML에서 직접 Vue 템플릿을 사용할 때만 발생합니다. 다음 단계에서 템플릿을 사용하면 그러한 제한 사항이 없습니다. 🎜
  • 字符串,例如 template: '...'
  • 单文件组件 .vue
  • <script type="text/x-template"></script>

异步组件

现在的大型网页往往需要异步获取不同的数据,Vue 有一个 defineAsyncComponent 方法定义异步组件,以优化应用的加载和用户体验。

异步组件在加载页面时并不立即渲染,而是要等带一些业务逻辑完成后,才会执行组件内的逻辑和渲染到页面上。

// 全局组件
app.component(&#39;async-example&#39;, Vue.defineAsyncComponent(() => {
  return new Promise((resolve, reject) => {
    resolve({
      template: &#39;<div>I am async!</div>&#39;
    })
  })
}))

// 局部组件
import { createApp, defineAsyncComponent } from &#39;vue&#39;

createApp({
  // ...
  components: {
    AsyncComponent: defineAsyncComponent(() => {
      return new Promise((resolve, reject) => {
        resolve({
          template: &#39;<div>I am async!</div>&#39;
        })
      })
    })
  }
})

异步组件的注册和一般的同步组件类似,如果是注册全局组件,也是使用 app.component()进行注册,不过第二个参数使用 Vue.defineAsyncComponent() 方法告诉 Vue 应用该组件是异步组件

defineAsyncComponent() 方法的参数是一个匿名函数,而且函数是返回一个 Promise。在 Promise 内应该 resovlve({}) 一个对象,其中包含了构建组件相关配置参数。只有当 Promise resolvereject 才执行异步组件的处理。

(学习视频分享:vuejs入门教程编程基础视频

위 내용은 vue에는 몇 개의 주요 구성 요소가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
VUE3开发基础:使用extends继承组件VUE3开发基础:使用extends继承组件Jun 16, 2023 am 08:58 AM

Vue是目前最流行的前端框架之一,而VUE3则是Vue框架的最新版本,相较于VUE2,VUE3具备了更高的性能和更出色的开发体验,成为了众多开发者的首选。在VUE3中,使用extends继承组件是一个非常实用的开发方式,本文将为大家介绍如何使用extends继承组件。extends是什么?在Vue中,extends是一个非常实用的属性,它可以用于子组件继承父

如何使用 Vue 实现日历组件?如何使用 Vue 实现日历组件?Jun 25, 2023 pm 01:28 PM

Vue是一款非常流行的前端框架,它提供了很多工具和功能,如组件化、数据绑定、事件处理等,能够帮助开发者构建出高效、灵活和易维护的Web应用程序。在这篇文章中,我来介绍如何使用Vue实现一个日历组件。1、需求分析首先,我们需要分析一下这个日历组件的需求。一个基本的日历应该具备以下功能:展示当前月份的日历页面;支持切换到前一月或下一月;支持点击某一天,

聊聊Vue怎么通过JSX动态渲染组件聊聊Vue怎么通过JSX动态渲染组件Dec 05, 2022 pm 06:52 PM

Vue怎么通过JSX动态渲染组件?下面本篇文章给大家介绍一下Vue高效通过JSX动态渲染组件的方法,希望对大家有所帮助!

VSCode插件分享:一个实时预览Vue/React组件的插件VSCode插件分享:一个实时预览Vue/React组件的插件Mar 17, 2022 pm 08:07 PM

在VSCode中开发Vue/React组件时,怎么实时预览组件?本篇文章就给大家分享一个VSCode 中实时预览Vue/React组件的插件,希望对大家有所帮助!

VUE3开发入门教程:使用组件实现分页VUE3开发入门教程:使用组件实现分页Jun 16, 2023 am 08:48 AM

VUE3开发入门教程:使用组件实现分页分页是一个常见的需求,因为在实际开发中,我们往往需要将大量的数据分成若干页以展示给用户。在VUE3开发中,可以通过使用组件实现分页功能,本文将介绍如何使用组件实现简单的分页功能。1.创建组件首先,我们需要创建一个分页组件,使用“vuecreate”命令创建VUE项目,并在src/components目录下创建Pagin

如何使用 Vue 实现仿照片墙组件?如何使用 Vue 实现仿照片墙组件?Jun 25, 2023 am 08:19 AM

在现代Web开发中,组件化是一个极受欢迎的开发模式。而Vue.js则是一个非常适合组件化的前端框架。在这篇文章中,我们将介绍如何使用Vue.js创建一个仿照片墙组件。在开始之前,我们需要明确一些准备工作。首先,我们需要安装Vue.js。安装的方法非常简单,只需在终端中输入以下命令:npminstallvue安装完成后,我们可以创建一个名为

常用 Vue UI 组件的使用技巧常用 Vue UI 组件的使用技巧Jun 25, 2023 am 08:31 AM

在现代Web开发中,UI组件是不可或缺的一部分。Vue.js框架中有许多优秀的UI组件库,如Element-UI、Vuetify、AntDesignVue等。这些组件库提供了许多易于使用的组件,可以帮助我们更加高效地创建Web应用程序。本文将介绍一些常用的VueUI组件,以及使用这些组件的技巧和实用技能。一、El-TableEl-Table是Eleme

VUE3初学者入门:使用Vue.js组件组合实现可复用组合VUE3初学者入门:使用Vue.js组件组合实现可复用组合Jun 15, 2023 pm 08:53 PM

Vue.js是一款流行的前端JavaScript框架,它提供了一种简单易用的方式来构建动态网页应用程序。Vue.js的主要特点是其模块化的设计和可插拔的组件系统。这使得开发者可以轻松地创建可复用的组件,从而提高了应用程序的重用性和可维护性。在本文中,我们将重点介绍VUE3初学者如何使用Vue.js组件组合实现可复用组合。Vue.js组件是一个完整的封装元素,

핫 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를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기