Vue.js의 상태 비저장 구성 요소 사용 소개
이 기사에서는 기능적 구성 요소에 대해 배우고 Vue의 워크플로에서 상태 비저장 구성 요소를 사용하는 방법을 배웁니다. Vue 애플리케이션 상태는 구성 요소의 동작을 결정하는 객체입니다. Vue 애플리케이션 상태는 구성 요소가 렌더링되는 방식이나 동적 상태를 나타냅니다.
시작하기 전에
다음이 필요합니다:
node.js 10.x 이상이 컴퓨터에 설치되어 있습니다. 터미널/명령 프롬프트에서 다음 명령을 실행하여 이 버전의 node.js가 있는지 확인할 수 있습니다.
node -v
Visual Studio Code Editor(또는 유사한 코드 편집기)
컴퓨터에 최신 버전 설치
컴퓨터에 Vue CLI 3.0을 설치합니다.
이렇게 하려면 먼저 이전 CLI 버전을 제거합니다.
npm uninstall -g vue-cli
다음으로 새 버전을 설치합니다.
npm install -g @vue/cli
다운로드한 프로젝트의 압축을 풉니다.
압축을 푼 파일로 이동하고 명령을 실행하여 모든 종속성을 최신 상태로 유지합니다.
npm install
소개: 상태와 인스턴스란 무엇입니까? Vue 애플리케이션 상태는 구성 요소의 동작을 결정하는 객체입니다. Vue 애플리케이션 상태는 구성 요소가 렌더링되는 방식이나 동적 상태를 나타냅니다. 동시에 vue 인스턴스는 요소를 나타내는 템플릿, 로드할 요소, 메서드 및 초기화 중 수명 주기 후크를 포함한 일부 옵션을 포함하는 뷰 모델입니다.
Vue 구성 요소
js의 구성 요소는 일반적으로 수동적입니다. vue.js에서 데이터 객체는 개념, 계산된 속성, 메서드 및 관찰자에 대한 다양한 옵션을 가질 수 있습니다. 또한 데이터 값이 변경되면 데이터 개체가 다시 렌더링됩니다. 반대로 기능적 구성 요소는 상태를 유지하지 않습니다.
기능적 구성요소
기본적으로 기능적 구성요소는 자체 구성요소를 갖는 기능입니다. 기능 구성 요소는 상태를 저장하거나 추적하지 않기 때문에 상태나 인스턴스가 없습니다. 또한 기능적 구성요소의 구성에 액세스할 수 없습니다. 기능적 구성 요소는 프레젠테이션을 위해 생성됩니다. Vue.js의 기능적 구성 요소는 React.js의 기능 구성 요소와 유사합니다. Vue에서 개발자는 컨텍스트를 전달하여 기능적 구성 요소를 사용하여 직접 깔끔한 구성 요소를 쉽게 구축할 수 있습니다.
구문 기능 구성 요소
공식 문서에 따르면 기능 구성 요소는 다음과 같습니다.
Vue.component('my-component', { functional: true, // Props are optional props: { // ... }, // To compensate for the lack of an instance, // we are now provided a 2nd context argument. render: function (createElement, context) { // ... } })
기능 구성 요소를 만들 때 기억해야 할 주요 지침은 기능 속성입니다. 함수 속성은 구성 요소의 템플릿 섹션이나 스크립트 섹션에 지정됩니다. 템플릿 섹션 구문은 다음과 같습니다. <template functional>
<div> <h1 id="nbsp-hello-nbsp-world"> hello world</h1>
</div>
</template>
export default { functional: true, render(createElement) { return createElement( "button", 'Click me' ); } };
기능적 구성 요소가 중요한 이유는 무엇입니까?
기능적 구성 요소는 상태가 없고 발생하기 때문에 빠르게 실행될 수 있습니다. 데이터 값이 변경되면 동일한 초기화 및 재렌더링 과정을 거치지 않습니다. 대부분의 기능적 구성 요소는 루프 항목을 표시하거나 표시하는 데 유용합니다.
Demo
이 소개 데모에서는 Vue 템플릿이 포함된 단일 페이지 구성 요소 유형 데모와 기능 구성 요소에 대한 렌더링 기능 유형 데모를 볼 수 있습니다.
단일 페이지 기능 구성 요소
test.vue
파일을 열고 다음 코드 블록을 파일에 복사합니다. <template functional>
<div>
<p v-for="brand in props.brands" :key="brand">{{brand}} </p>
</div>
</template>
<script>
export default {
functional: true,
name: 'Test',
props: {
brands: Array
}
}
</script>
임시 데이터 소품도 재활용 가능합니다. test.vue
文件并将下面的代码块复制到该文件中:
<template> <div id="app"> <img src="/static/imghw/default1.png" data-src="./assets/logo.png" class="lazy" alt="Vue logo" > <Test :brands ="['Tesla', 'Bentley', 'Ferrari', 'Ford']"> </Test> </div> </template> <script> import Test from './components/Test.vue' export default { name: 'app', components: { Test } } </script> <style> #app { font-family: 'Avenir', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style>
脚本和模板中的功能指示器显示这是一个功能组件。注意,仍然可以传递道具——它们是在功能组件中可以传递的惟一数据值。
暂时的数据道具持有也可以循环通过。
打开您的app.vue
文件,将下面的代码块复制到其中:
npm run serve
这里,您将看到props引用与冒号一起使用。
使用以下命令在dev服务器中运行应用程序:
export default { functional: true, render(createElement, { children }) { return createElement("button", children); } };
你的浏览器的结果应该是这样的:
呈现函数方法
功能组件也可以包含呈现函数。
开发人员使用呈现函数来创建他们自己的虚拟DOM,而不使用Vue模板。
使用渲染函数在cars列表下创建一个新按钮。在你的项目文件夹中创建一个名为example.js
app.vue
파일을 열고 다음 코드 블록을 파일에 복사하세요. <template> <div id="app"> <img src="/static/imghw/default1.png" data-src="./assets/logo.png" class="lazy" alt="Vue logo" > <Test :brands ="['Tesla', 'Bentley', 'Ferrari', 'Ford']"> </Test> <Example> Find More Cars </Example> </div> </template> <script> import Test from './components/Test.vue' import Example from './Example' export default { name: 'app', components: { Test, Example } } </script> <style> #app { font-family: 'Avenir', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style>
export default { functional: true, render(createElement, { data, children }) { return createElement("button", data, children); } };

example.js
라는 새 파일을 만들고 다음 코드 블록을 파일에 복사합니다. 🎜<template> <div id="app"> <img src="/static/imghw/default1.png" data-src="./assets/logo.png" class="lazy" alt="Vue logo" > <Test :brands ="['Tesla', 'Bentley', 'Ferrari', 'Ford']"> </Test> <Example @click="callingFunction"> Find More Cars </Example> </div> </template> <script> import Test from './components/Test.vue' import Example from './Example' export default { name: 'app', components: { Test, Example }, methods: { callingFunction() { console.log("clicked"); } } } </script>
<template> <div id="app"> <img src="/static/imghw/default1.png" data-src="./assets/logo.png" class="lazy" alt="Vue logo" > <Test :brands ="['Tesla', 'Bentley', 'Ferrari', 'Ford']"> </Test> <Example> Find More Cars </Example> </div> </template> <script> import Test from './components/Test.vue' import Example from './Example' export default { name: 'app', components: { Test, Example } } </script> <style> #app { font-family: 'Avenir', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style>
如果再次运行该应用程序,您将看到find more cars(查找更多汽车)子节点现在是按钮的文本。示例组件在检查时显示为功能组件。
添加点击事件
您可以在组件上添加单击事件,并在根组件中包含该方法。但是,您需要render函数中的数据对象参数来访问它。
复制这个在你的example.js
文件:
export default { functional: true, render(createElement, { data, children }) { return createElement("button", data, children); } };
现在,将单击事件添加到根组件中,Vue将识别它。将以下内容复制到您的app.vue
文件:
<template> <div id="app"> <img src="/static/imghw/default1.png" data-src="./assets/logo.png" class="lazy" alt="Vue logo" > <Test :brands ="['Tesla', 'Bentley', 'Ferrari', 'Ford']"> </Test> <Example @click="callingFunction"> Find More Cars </Example> </div> </template> <script> import Test from './components/Test.vue' import Example from './Example' export default { name: 'app', components: { Test, Example }, methods: { callingFunction() { console.log("clicked"); } } } </script>
除了上面的示例之外,您还可以在官方文档中列出的功能组件中使用其他参数。
结论
这个功能组件的初学者指南可以帮助您实现快速的表示,显示项目的循环,或者显示不需要状态的工作流的简单部分。
相关推荐:
更多编程相关知识,请访问:编程入门!!
위 내용은 Vue.js의 상태 비저장 구성 요소 사용 소개의 상세 내용입니다. 자세한 내용은 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)

뜨거운 주제











서문: vue3 개발에서 반응형은 반응형 데이터를 구현하는 방법을 제공합니다. 일상적인 개발에서 자주 사용되는 API입니다. 이 기사에서 저자는 내부 작동 메커니즘을 탐구합니다.

vscode 자체는 Vue 파일 구성 요소를 지원하여 정의로 이동하지만 지원은 매우 약합니다. vue-cli 구성에 따라 다양한 유연한 사용법을 작성할 수 있어 생산 효율성을 향상시킬 수 있습니다. 그러나 vscode 자체에서 제공하는 기능이 파일 정의로 점프하는 것을 지원하지 못하게 하는 것은 이러한 유연한 쓰기 방법입니다. 이러한 유연한 작성 방법과 호환되고 작업 효율성을 높이기 위해 Vue 파일을 지원하는 vscode 플러그인을 작성하여 정의로 이동했습니다.

Ace는 JavaScript로 작성된 내장형 코드 편집기입니다. Sublime, Vim 및 TextMate와 같은 기본 편집기의 기능 및 성능과 일치합니다. 모든 웹페이지와 JavaScript 애플리케이션에 쉽게 삽입할 수 있습니다. Ace는 Cloud9 IDE의 메인 편집자로 유지되며 Mozilla Skywriter(Bespin) 프로젝트의 후속 버전입니다.

Vue.js는 오늘날 프런트엔드 개발에서 매우 인기 있는 프레임워크가 되었습니다. Vue.js가 계속 발전함에 따라 단위 테스트는 점점 더 중요해지고 있습니다. 오늘은 Vue.js 3에서 단위 테스트를 작성하는 방법을 살펴보고 몇 가지 모범 사례와 일반적인 문제 및 솔루션을 제공하겠습니다.

구성요소화와 모듈화의 차이점: 모듈화는 코드 논리의 관점에서 구분되며, 코드 계층 개발을 용이하게 하고 각 기능 모듈의 기능이 일관되게 유지되도록 합니다. 컴포넌트화는 UI 인터페이스 관점에서 계획하는 것으로 프런트엔드의 컴포넌트화는 UI 컴포넌트의 재사용을 용이하게 합니다.

Vue3 동적 구성 요소에서 예외를 처리하는 방법은 무엇입니까? 다음 기사에서는 Vue3 동적 구성 요소 예외 처리 방법에 대해 설명합니다. 이것이 모든 사람에게 도움이 되기를 바랍니다.

Vue 프레임워크를 사용하여 프런트엔드 프로젝트를 개발할 때 배포 시 여러 환경을 배포하게 되는데, 개발 환경, 테스트 환경, 온라인 환경에서 호출되는 인터페이스 도메인 이름이 다른 경우가 많습니다. 어떻게 구별할 수 있나요? 그것은 환경 변수와 패턴을 사용하는 것입니다.

Vue3 출시 이후, 단어 구성 API는 Vue를 작성하는 학생들의 시야에 들어왔습니다. 이제 @의 출시로 인해 구성 API가 이전 옵션 API보다 얼마나 나은지 항상 들어보셨을 것입니다. vue/composition-api 플러그인, Vue2 학생들도 버스에 탑승할 수 있습니다. 다음으로 우리는 주로 반응형 참조와 반응형을 사용하여 이 플러그인이 이를 어떻게 달성하는지에 대한 심층 분석을 수행할 것입니다.
