Vue를 사용하여 사용자 정의 구성 요소를 작성하는 방법

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

이번에는 vue를 사용하여 커스텀 컴포넌트를 작성하는 방법을 보여드리겠습니다. vue를 사용하여 커스텀 컴포넌트를 작성할 때 주의 사항은 무엇입니까?

Vue 컴포넌트 작성

아래에 작성하는 내용은 webpack을 기반으로 구축된 프로젝트인 .vue로 끝나는 단일 파일 컴포넌트를 작성하는 방법입니다. 여전히 webpack을 사용하여 vue 프로젝트를 빌드하는 방법을 모른다면 vue-cli로 이동할 수 있습니다.

완전한 Vue 구성 요소에는 다음 세 부분이 포함됩니다.

  1. template: template

  2. js: logic

  3. css: style

각 구성 요소에는 자체 템플릿, js 및 스타일이 있습니다. 한 페이지를 집에 비유한다면 그 집 안의 거실, 침실, 부엌, 화장실 등이 구성요소입니다. 주방을 따로 빼내면 칼, 레인지후드 등이 구성품이 될 수 있습니다. 즉, 페이지는 구성 요소로 구성되고 구성 요소는 구성 요소로 구성될 수도 있습니다. 이는 매우 유연하며 결합도가 매우 낮습니다.

먼저 .vue 파일에서 구성 요소가 어떻게 작성되는지 살펴보겠습니다.

Vue.component('simple-counter', {
 template: '<p id="inputBox"><input type="text"></p>',
 data () {   // 数据
 return {
  counter: 0
 }
 },
 methods: {
 // 写点方法
 },
 created () {
 // 生命钩子
 },
 computed: {
 // 计算属性
 }
})
로그인 후 복사
템플릿은 무엇에 사용되나요?

<template>
 <p id="inputBox">
 <input type="text">
 </p>
</template>
<!--
template就是这个组件的html,也就是下面部分(vue-loader会将template标签下的内容解析出来):
-->
<p id="inputBox">
 <input type="text">
</p>
<!--
 对应原生写法的话,就是template内的dom字符串
-->
로그인 후 복사
js part

export default {
 data () {
 return {
  counter: 0
 }
 },
 methods: {
 // 方法
 },
 created () {
 // 生命钩子
 },
 computed: {
 // 计算属性
 }
}
// 在这里很明显js部分就是对应的原生写法内的非template部分了。
// export default这个是es6的模块写法,不懂的可以先去了解es6的模块化
로그인 후 복사
css part

<style lang="scss" scoped>
...样式
</style>
로그인 후 복사

소개

이 구성 요소를 다른 구성 요소에서 참조하는 방법은 무엇입니까?

컴포넌트 1(button.vue)

<template>
 <p class="button">
 <button @click="onClick">{{text}}</button>
 </p>
</template>
<script>
export default {
 props: ['text'],   // 获取父组件的传值
 data () {
 return {
 }
 },
 methods: {
 onClick () {
  console.log('点击了子组件')
 }
 }
}
</script>
<style lang="scss" scoped>
.button {
 button {
 width: 100px;
 }
}
</style>
로그인 후 복사

컴포넌트 2(box.vue)

<template>
 <p class="box">
 <v-button :text="text"></v-button>    <!--使用组件并传值(text)-->
 </p>
</template>
<script>
import Button from './button.vue'  // 引入子组件
export default {
 components: {
 'v-button': Button
 },
 data () {
 return {
  text: '按键的name'
 }
 },
 methods: {
 }
}
</script>
로그인 후 복사
이 글의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 내용을 보려면 주목해 주세요. 기타 관련 기사는 PHP 중국어 웹사이트에 있습니다!

추천 도서:

Angular 프로젝트에서 scss를 사용하는 단계에 대한 자세한 설명

vue2.0+koa2+mongodb를 사용하여 등록 및 로그인하는 방법

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

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