父子組件通訊使用

29 篇文章 0 订阅

一、父子組件

   1.創建組件構造器   Vue.extend()--> const app = new Vue({})

   2.註冊組件   Vue.component('my-cpn',cpnC)

   3.使用組件 <div> <my-cpn></my-cpn></div>

//父組件模板
<div id="app">
   <cpn @cFn="parentFn"></cpn>
   <p>這是子組件傳來的:{{message}}</p>
    
<cpn v-bind:cmovies="movices"></cpm>
</div>

<script>
//father components 
const app = new Vue({
       el:'#app',       
       data:{
           message:'',
           movies:['海賊王','天氣之子','柯南','足球小將','銀狐','叮噹貓','籃球'],
           },
         components:{
           cpn:cpn
          },
         methods:{
              parentFn(aa){
                  this.message = aa
            }
         }

    })

</script>

</script>
//子組件模板
<template id="cpn">
  <div>
    <input type="text" v-model="message"/>
     <button @btnClick>發送</button>
     

  </div>
</template>

<script>
  const cpn ={
       temmplate:'#cpn'
       props:{'cmovies'},
       data(){
         return{
           message:'這是來自子組件的消息請注意查收'

       }},methods:{
         btnClikck(){
              this.$emit(cFn,this.message)
            }

       
       }
}

 

 

 

二、父子組件通信

     

<div id="app">
      <cpn :number1="num1" :number2="num2" @num1Change="num1Change" @num2Change="num2Change"></cpn>
</div>

<template id="cpn">
 <div>
   <h2>props:{{number1}}</h2>
   <input>data:{{dnumber1}}</input>
   <h2>props:{{number2}}</h2>
  <input>data:{{dnumber2}}</input>
 </div>
</template>

<script>
//father
const app = new Vue({
    el:"#app",
    data:{
      message:'hello',
       num1:1,
       num2:2,
     },
methods:{
   num1Change(value){
    this.num1= value

},
   num2Change(){
       this.num2= value

}}
//child
   components:{
        template:'#cpn',
        props:{
          number1:Number,
          number2:Number
        }
        data(){
          return{
           dnumber1:this.number1,
           dnumber2:this.number2

       }},
      methods:{
          num1Input(event){
             this.dnumber1 = event.target.value;
             this.$emit('number1Change',this.dnumber1)

          },
         num2Input(event){
             this.dnumber2 = event.target.value;
             this.$emit('number2Change',this.dnumber2)

          }

   }
})

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值