vue 구성 요소 Prop 전달 데이터 구현 예제

구성 요소 인 스 턴 스 의 역할 영역 은 고립 되 어 있 습 니 다.이것 은 하위 구성 요소 의 템 플 릿 에서 부모 구성 요소 의 데 이 터 를 직접 인용 할 수 없다 는 것 을 의미한다.하위 구성 요소 에 부모 구성 요소 의 데 이 터 를 사용 하려 면 하위 구성 요소 의 props 옵션 을 사용 해 야 합 니 다.
prop 는 단 방향 으로 연결 되 어 있 습 니 다.부모 구성 요소 의 속성 이 변 할 때 하위 구성 요소 에 전 달 됩 니 다.그러나 거꾸로 되 지 않 습 니 다.하위 구성 요소 가 부모 구성 요소 의 상 태 를 수정 하지 않 는 것 을 방지 하기 위해 서 입 니 다.
부모 구성 요소 가 업 데 이 트 될 때마다 하위 구성 요소 의 모든 prop 는 최신 값 으로 업 데 이 트 됩 니 다.이것 은 하위 구성 요소 내부 에서 prop 를 바 꾸 지 말 아야 한 다 는 것 을 의미한다.
1.Prop 정적 전달 데이터

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <script type="text/javascript" src="vue.js"></script>

</head>
<body >
<div id="app">
  <!--      -->
   <my-component message="hello" name="   " age="18"></my-component>
</div>
</body>

<script>
  Vue.component('my-component',{
    //            message name age
    props:['message','name','age'],
    // data         
    data:function(){
     return{
       message1: this.message +' data         '
     }
    },
    //              
    computed:{
      message2:function(){
        return this.message + '              '
      }
    },
    template:'<div>' +
          '<span>{{message1}}</span><br>'+
          '<span>{{message2}}</span><br>'+
          '<span>{{message}} {{name}}  {{age}} </span><br>'+
         '</div>'
  })
  new Vue({
    el:'#app'
  })
</script>
</html>

출력 결과:

2.Prop 동적 전달 데이터

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <script type="text/javascript" src="vue.js"></script>
</head>
<body >
<div id="app">
    <input v-model="parentMsg"><br>
    <my-component :message="parentMsg"></my-component>
</div>
</body>

  <script>
    Vue.component('my-component',{
      props:['message'],
      data:function(){
        return{count:this.message+'       '}
      },
      computed:{
        normalizedSize: function () {
          return this.message.trim().toLowerCase()
        }
      },
      template:'<div>' +
            '<span>{{message}}---{{normalizedSize}}</span><br>'+
            '<span>{{count}}</span>'+
           '</div>'
    })

    new Vue({
      el:'#app',
      data:{
        parentMsg:'   '
      }
    })
</script>
</html>
출력 결과:

 3.Prop 인증,우 리 는 구성 요소 의 props 에 인증 규격 을 지정 할 수 있 습 니 다.들 어 오 는 데이터 가 규격 에 맞지 않 으 면 Vue 에서 경 고 를 보 냅 니 다.프론트 데스크 톱 컨트롤 러 에서 경고 메 시 지 를 볼 수 있 습 니 다.

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <script type="text/javascript" src="vue.js"></script>
</head>
<body>
  <div id="app">
    <example :prop-d="message"></example>
  </div>
</body>

<script>
  Vue.component('example', {
    props: {
      //        (`null`           )
      propA: Number,
      //     
      propB: [String, Number],
      //        
      propC: {
        type: String,
        required: true
      },
      //   ,    
      propD: {
        type: Number,
        default: 100
      },
      //   /                 
      propE: {
        type: Object,
        default: function () {
          return { message: 'hello' }
        }
      },
      //        
      propF: {
        validator: function (value) {
          return value > 10
        }
      }
    },
    template:'<span>{{propD}}</span>'
  })

  new Vue({
    el:'#app',
    data:{
      message:'propD          '
    }
  })
</script>
</html>

콘 솔 출력 경고 메시지:

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기