> 웹 프론트엔드 > 프런트엔드 Q&A > vue 프로젝트에는 vue 인스턴스가 하나만 있습니까?

vue 프로젝트에는 vue 인스턴스가 하나만 있습니까?

青灯夜游
풀어 주다: 2022-12-19 15:25:03
원래의
2715명이 탐색했습니다.

아니요, vue 프로젝트에는 여러 vue 인스턴스가 포함될 수 있습니다. vue 프로젝트에는 일반적으로 main.js에 정의된 VUE 인스턴스가 하나만 있고 나머지는 vue 구성 요소 인스턴스입니다. Vue는 인스턴스로 구성됩니다. 구성 요소는 Vue의 인스턴스입니다. 속성은 각 구성 요소 내에 작성될 수 있으므로 각 구성 요소는 Vue의 인스턴스입니다.

vue 프로젝트에는 vue 인스턴스가 하나만 있습니까?

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

아니요, vue 프로젝트에는 여러 vue 인스턴스가 포함될 수 있습니다.

Vue는 인스턴스로 구축됩니다. 구성 요소는 Vue의 인스턴스입니다. 속성은 각 구성 요소 내에 작성될 수 있으므로 각 구성 요소는 Vue의 인스턴스입니다. vue 프로젝트에는 일반적으로 main.js에 정의된 VUE 인스턴스가 하나만 있고 나머지는 vue 구성 요소 인스턴스입니다.

Vue 인스턴스

Vue를 사용하여 프로젝트를 작성할 때 가장 중요한 것은 Vue 인스턴스를 학습하는 방향을 제공하는 것입니다. 점차적으로 Vue 인스턴스와 관련된 "기능"을 익히는 것이 우리의 최종 목표입니다. .

먼저 vue.js를 html 파일로 로드합니다. 스크립트 태그를 통해 vue.js 파일을 직접 로드할 수 있습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue实例</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<body>
로그인 후 복사

브라우저로 이 페이지를 열고 콘솔에 Vue를 입력하면 Vue가 본질적으로 함수:

vue 프로젝트에는 vue 인스턴스가 하나만 있습니까?

사실 Vue는 "클래스"로 간주될 수 있는 생성자이며 해당 인스턴스는 new를 통해 생성됩니다. 그러면 한 페이지에 몇 개의 인스턴스를 만들 수 있습니까?

보통 한 페이지에 하나의 Vue 인스턴스만 생성됩니다:

<body>
    <div id="app">Hello {{ msg }}</div>
    <script>
        const vm = new Vue({
            el: &#39;#app&#39;,
            data: function () {
                return {
                    msg: &#39;前端小课&#39;
                }
            }
        });
</script>
</body>
로그인 후 복사

Vue 인스턴스를 생성할 때 "사용자 정의된" 객체가 전달됩니다. 위의 객체를 다른 쓰기 방식으로 변경할 수 있습니다:

<body>
    <div id="app">Hello {{ msg }}</div>
    <script>
        const obj = {
            el: &#39;#app&#39;,
            data: function () {
                return {
                    msg: &#39;前端小课&#39;
                }
            }
        }
        const vm = new Vue(obj);
</script>
</body>
로그인 후 복사

In the obj 객체에는 Vue 인스턴스에 제공되는 "템플릿"을 나타내는 el 속성이 있습니다. 즉, 인스턴스를 생성할 때 Vue에 렌더링되는 HTML과 사이에 일종의 연결을 설정하는 방법을 알려야 합니다. HTML과 obj에서 수행할 작업입니다. 예를 들어 HTML 템플릿에 표시될 데이터를 Vue 인스턴스의 데이터와 연결하는 방법, HTML 템플릿에서 트리거되는 이벤트에 응답하는 방법 등이 있습니다. 연결을 설정하려면 템플릿과 Vue 인스턴스 간에 계약이 이루어져야 합니다.

el은 선택기 또는 HTMLElement(DOM을 여는 디자인 아키텍처) 인스턴스일 수 있습니다. el을

el: document.getElementById(&#39;app&#39;),
로그인 후 복사

로 작성하거나 임의의 선택기가 될 수 있습니다.

 el: &#39;div&#39;,
로그인 후 복사

아래에 표시된 결과는 무엇입니까?

vue 프로젝트에는 vue 인스턴스가 하나만 있습니까?

마지막으로 "Good morning, check in!"이라는 제목의 값이 HTML로 렌더링되지 않은 것이 발견되었습니다. 이는 제목이 있는 div가 Vue 인스턴스의 범위 내에 있지 않기 때문입니다. 이는 Vue 인스턴스만 사용할 수 있음을 의미합니다. 인스턴스가 생성된 템플릿(예: el이 가리키는 템플릿)으로 이동하세요.

vue 프로젝트에는 vue 인스턴스가 하나만 있습니까?

실제로 한 페이지에서 여러 Vue 인스턴스를 만들 수 있습니다. 다음 코드는 3개의 Vue 인스턴스를 생성하고 정상적으로 작동하는지 확인합니다.

<body>
    <div id="app">
        <h1>{{ msg }}</h1>
    </div>
    <div id="app-body">
        <h4>{{ title }}</h4>
    </div>
    <div class="app-footer">
        <h4>{{ footer }}</h4>
    </div>
    <script>
        const vm = new Vue({
            el: &#39;#app&#39;,
            data: function () {
                return {
                    msg: "欢迎来到前端小课",
                }
            }
        });
</script>
    <script>
        const vmBody = new Vue({
            el: &#39;#app-body&#39;,
            data: function () {
                return {
                    title: "Vue 实例讲解"
                }
            }
        });
</script>
    <script>
        const vmFooter = new Vue({
            el: &#39;.app-footer&#39;,
            data: function () {
                return {
                    footer: "感谢阅读",
                }
            }
        });
</script>
</body>
로그인 후 복사

브라우저로 열면 다음과 같습니다.

vue 프로젝트에는 vue 인스턴스가 하나만 있습니까?

이 예는 "구성 요소는 재사용 가능한 Vue 인스턴스입니다. " 이런 작성 방식은 컴포넌트와 약간 비슷합니다. 각 Vue 인스턴스는 컴포넌트로 간주됩니다. .

또 다른 예를 살펴보겠습니다. Vue 인스턴스에 중첩된 Vue 인스턴스:

<body>
    <div id="app">
        <h1>{{ msg }}</h1>
        <!-- 这里不能声明一个新的 Vue 实例 -->
        <div id="app-body">
            <h4>会渲染吗?{{ title }}</h4>
        </div>
    </div>
    <script>
        const vm = new Vue({
            el: &#39;#app&#39;,
            data: function () {
                return {
                    msg: "欢迎来到前端小课",
                    title: "#app - Vue 实例讲解"
                }
            }
        });
</script>
    <script>
        const vmBody = new Vue({
            el: &#39;#app-body&#39;,
            data: function () {
                return {
                    title: "#app-body - Vue 实例讲解"
                }
            }
        });
</script>
</body>
로그인 후 복사

렌더링 결과는 다음과 같으며 결과는 #app 인스턴스의 데이터를 사용하는 것으로 나타났습니다.

vue 프로젝트에는 vue 인스턴스가 하나만 있습니까?

또한 많은 API가 있으며 각 API를 단계별로 학습해야 합니다. 예를 들어 수명 주기 함수, 계산된 속성, 정의 방법, 필터:

vue 프로젝트에는 vue 인스턴스가 하나만 있습니까?

vue 프로젝트에는 vue 인스턴스가 하나만 있습니까?

[관련 권장 사항: vuejs 비디오 튜토리얼, 웹 프론트 엔드 개발]

위 내용은 vue 프로젝트에는 vue 인스턴스가 하나만 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿