> 웹 프론트엔드 > JS 튜토리얼 > Vue 구성 요소의 고급 사용

Vue 구성 요소의 고급 사용

php中世界最好的语言
풀어 주다: 2018-05-25 14:06:04
원래의
1934명이 탐색했습니다.

이번에는 Vue 컴포넌트의 고급 및 고급 사용법을 알려드리겠습니다. Vue 컴포넌트의 고급 및 고급 사용법에 대한 주의 사항은 무엇입니까? 다음은 실제 사례입니다.

1. 재귀 구성 요소

구성 요소는 템플릿에서 자체적으로 재귀적으로 호출할 수 있습니다. 구성 요소에 이름 옵션을 설정하기만 하면 됩니다.

예제는 다음과 같습니다.

  <p id="app19">
   <my-component19 :count="1"></my-component19>
  </p>
Vue.component('my-component19',{
 name: 'my-component19', //其实当你利用 Vue.component 全局注册了一个组件,全局的ID会被自动设置为组件的name。
 props: {
  count: {
   type: Number,
   default: 1
  }
 },
 template: '<p><my-component19 :count="count+1" v-if="count<3"></my-component19></p>'
});
var app19 = new Vue({
 el: '#app19'
});
로그인 후 복사

렌더링 결과는

 <p id="app19">
  <p>
   <p>
    <p><!----></p>
   </p>
  </p>
 </p>
로그인 후 복사

이름을 설정한 후 컴포넌트 템플릿에서 반복적으로 사용할 수 있습니다. 단, 개수를 제한하는 조건이 있어야 한다는 점에 유의하세요. 그렇지 않으면 오류가 발생합니다: 최대 스택 크기를 초과했습니다.

구성 요소의 재귀적 사용은 계단식 선택기 및 트리 모양의 컨트롤 등과 같이 알 수 없는 계층 관계를 가진 일부 독립 구성 요소를 개발하는 데 사용될 수 있습니다.

2. 인라인 템플릿

컴포넌트의 템플릿은 일반적으로 템플릿 옵션에서 정의됩니다. Vue는 컴포넌트를 사용할 때 컴포넌트 라벨에 인라인 템플릿 기능을 사용합니다. 콘텐츠를 콘텐츠로 배포하는 대신 템플릿으로 처리하므로 템플릿이 더욱 유연해집니다.

예는 다음과 같습니다:

<p id="app20">
   <my-component20 inline-template>
    <p>
     <h3>在父组件中定义子组件的模板</h3>
     <p>{{msg}}</p>
    </p>
   </my-component20>
  </p>
Vue.component('my-component20',{
 data: function(){
  return {
   msg: '在子组件声明的数据'
  }
 }
});
var app20 = new Vue({
 el: '#app20'
});
로그인 후 복사

3. 동적 구성요소

Vue.js는 다양한 구성요소를 동적으로 마운트하기 위한 특수 요소 를 사용하여 마운트할 구성요소를 선택합니다.

예제는 다음과 같습니다.

<p id="app21">
   <component :is="currentView"></component>
   <button @click="changeView(&#39;A&#39;)">切换到A</button>
   <button @click="changeView(&#39;B&#39;)">切换到B</button>
   <button @click="changeView(&#39;C&#39;)">切换到C</button>
  </p>
var app21 = new Vue({
 el: '#app21',
 data: {
  currentView: 'comA'
 },
 methods: {
  changeView: function(data){
   this.currentView = 'com'+ data  //动态地改变currentView的值就可以动态挂载组件了。
  }
 },
 components: {
  comA: {
   template: '<p>组件A</p>'
  },
  comB: {
   template: '<p>组件B</p>'
  },
  comC: {
   template: '<p>组件C</p>'
  }
 }
});
로그인 후 복사

4. 비동기식 구성 요소

프로젝트 규모가 충분히 크고 구성 요소를 충분히 사용하면 모든 구성 요소를 로드하는 것만으로는 충분하지 않기 때문에 성능 문제를 고려해야 할 때입니다. 처음에는 필요한 비용입니다.

다행히 Vue.js를 사용하면 구성 요소를 팩토리 함수로 정의하고 구성 요소를 동적으로 구문 분석할 수 있습니다. Vue는 구성 요소를 렌더링해야 할 때만 팩토리 기능을 트리거하고 후속 재렌더링을 위해 결과를 캐시합니다. ​​

 <p id="app22">
      <my-component22></my-component22>
    </p>
Vue.component('my-component22',function(resolve, reject){
  window.setTimeout(function(){
    resolve({
      template: '<p>我是异步渲染的</p>'
    })
  },2000)
});
var app22 = new Vue({
  el: '#app22'
});
로그인 후 복사

팩토리 함수는 서버에서 다운로드한 구성요소 정의를 수신할 때 호출되는 확인 콜백을 수신합니다. 로드 실패를 나타내기 위해 recognition(reason)을 호출할 수도 있습니다.
여기서 setTimeout은 비동기성을 보여주기 위한 것입니다. 예를 들어 구성 요소 구성을 object 구성으로 작성하고 Ajax를 통해 요청한 다음 구성 옵션을 전달하기 위해 호출합니다.

이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

사용자 정의 라이브러리를 개발하는 방법

JS를 사용하여 재계산을 위해 여러 배열을 병합하는 방법

위 내용은 Vue 구성 요소의 고급 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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