vue 구성 요소(전역 등록,부분 등록)
31639 단어 Vue
1.구성 요소 인식(1)구성 요 소 를 만 드 는 쓰기 방법:
Vue.component(" ",{ //xx });
//여 기 는 전역 등록 구성 요소 의 쓰기 방법 Vue.component()
입 니 다.예 를 들 어 Vue.ponent("my-comname",{/xx});그럼 my-comname 은 새 구성 요소 의 이름 입 니 다.(2)구성 요소 이름 을 정의 하 는 방식:
Vue.component('my-component-name', { //xx })
은 이러한 방식 으로 구성 요 소 를 정의 할 때 이 사용자 정의 요 소 를 참조 할 때 도 kebab-case 를 사용 해 야 합 니 다.예 를 들 어
.Vue.component('MyComponentName', { //xx })
은 이러한 방식 으로 구성 요 소 를 정의 할 때 이 사용자 정의 요 소 를 참조 할 때 두 가지 명명 법 을 모두 사용 할 수 있 습 니 다.즉
과
모두 가능 하 다.주의: DOM( ) kebab-case 。
과
입 니 다.우리 의 구성 요 소 는 모두 Vue.coponent 를 통 해 전역 적 으로 등록 되 어 있 습 니 다.전역 적 으로 등 록 된 구성 요 소 는 등 록 된 후(new Vue 를 통 해)새로 만 든 Vue 루트 인 스 턴 스 를 사용 할 수 있 으 며,구성 요소 트 리 의 모든 하위 구성 요소 템 플 릿 도 포함 합 니 다.<div id="app">
<button-counter>button-counter>
<hr>
<div id="dv" style="width:200px;height:200px;background-color:lightblue;">
<button-counter> #dv button-counter>
div>
div>
<script src="js/vue.js"></script>
<script>
// button-counter
Vue.component('button-counter', {
data: function () {
return {
count: 0
}
},
template: ''
});
/* 。 new Vue Vue ,
。 */
new Vue({
el: '#app'
});
</script>
2.구성 요소 재 활용 구성 요소 의 재 활용:
.주의: <div id="app">
<button-counter>button-counter>
<button-counter>button-counter>
<button-counter>button-counter>
div>
<script src="js/vue.js"></script>
<script>
Vue.component("button-counter", {
// , data
// data:{
// count:0
// },
// , data
data: function () {
return {
count: 0
}
},
template:``
});
let app = new Vue({
el: "#app"
});
</script>
3.전역 등록 구성 요소 구성 요 소 는 등록 후 새로 만 든 Vue 루트 인 스 턴 스(new Vue)템 플 릿 에 사용 할 수 있 습 니 다.모든 하위 구성 요소 에서 도 마찬가지 입 니 다.즉,이 세 개의 하위 구성 요 소 는 각자 내부 에서 도 서로 사용 할 수 있 습 니 다.
<div id="app">
<mycomponet-a>mycomponent-a>
<mycomponent-b>mycomponent-b>
<mycomponent-c>mycomponent-c>
div>
<script src="js/vue.js"></script>
<script>
Vue.component('mycomponent-a', {
data: function () {
return {
poem_title: " ",
poem_name: "《 》- ",
poem_content: " , 。 , 。"
}
},
template: `{{poem_title}}
{{poem_name}}{{poem_content}}`
});
Vue.component('mycomponent-b', {
data: function () {
return {
songpoem_title: " ",
songpoem_name:"《 》- ",
songpoem_content:" , ? , ! , 。 ? 。"
}
},
template: `{{songpoem_title}}
{{songpoem_name}}{{songpoem_content}}`
});
Vue.component('mycomponent-c', {
data: function () {
return {
yuanopera_title: " ",
yuanopera_name:"《 - 》- ",
yuanopera_content:" , , 。 , 。"
}
},
template: `{{yuanopera_title}}
{{yuanopera_name}}{{yuanopera_content}}`
});
new Vue({
el: '#app',
})
</script>
4.부분 등록 구성 요소 의 전체 등록 은 이상 적 이지 않다.예 를 들 어,웹 패키지 같은 프로젝트 를 사용 하 세 요.모든 구성 요 소 를 전역 적 으로 등록 하 는 경우,어떤 구성 요 소 를 사용 하지 않 아 도 최종 패키지 에 포 함 됩 니 다.사용자 가 불필요 한 js 를 다운로드 할 수 있 습 니 다.이것 은 우리 가 부분 구성 요 소 를 등록 해 야 한다.
components ,
,
。 <div id="app">
<localcom-a message=" ">localcom-a>
<localcom-b message=" ">localcom-b>
<localcom-c message=" ">localcom-c>
div>
<hr>
<div id="app2">
<mycom-x info=" ">mycom-x>
<mycom-y info=" ">mycom-y>
div>
<script src="js/vue.js"></script>
<script>
// , js , :
var ComponentA = {
props: ["message"],
template: `{{message}}
`
}
var ComponentB = {
props: ["message"],
template: `{{message}}
`
}
var ComponentC = {
props: ["message"],
template: `{{message}}
`
}
// components :
let app = new Vue({
el: '#app',
components: {
'localcom-a': ComponentA,
'localcom-b': ComponentB,
'localcom-c': ComponentC
}
})
console.log(app);
// : 。
// , a , :
var myComX = {
props: ["info"],
template: `{{info}}
`
}
var myComY = {
components: {
'mycom-x': myComX
}
}
let app2 = new Vue({
el: "#app2",
components: {
'mycom-x': myComX,
'mycom-y': myComX
}
});
console.log(app2);
// Babel webpack ES2015 , :
// import ComponentA from './ComponentA.vue'
// export default {
// components: {
// ComponentA
// },
// // ...
// }
/*
ES2015+ , ComponentA ComponentA: ComponentA , :
*/
</script>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Vue Render 함수로 DOM 노드 코드 인스턴스 만들기render에서createElement 함수를 사용하여 DOM 노드를 만드는 것은 직관적이지 않지만 일부 독립 구성 요소의 디자인에서 특수한 수요를 충족시킬 수 있습니다.간단한 렌더링 예는 다음과 같습니다. 또한 v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.