码迷,mamicode.com
首页 > 其他好文 > 详细

vue中父子组件的参数传递和应用

时间:2020-01-15 13:50:22      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:default   tle   public   parent   传值   sse   注入组   style   imp   

1.在父组件中调用子组件,父亲传值给子组件

子组件如下,把要传给给父亲的值放在props中

template>
   <!--底部导航-->
    <div class="index-bbar">
        <ul class="flex" >
            <li v-for="(item,index) in liAry" :class="index==licurrent?‘active‘:‘‘">
             <router-link :to="item.linkURl">
                <span class="flex alignc flexdc">
                    <img  :src="index==licurrent?require(‘../../‘ + item.urlActive):require(‘../../‘ + item.url)" class="img1" ><span>{{item.title}}</span>
                </span>
              </router-link>
            </li>
        </ul>
    </div>
</template>
<script>
export default {
  name: ‘Bottom‘,
  data () { 
    return {
        
    }
  },
  props:[‘liAry‘,‘licurrent‘],
  methods: {

  }
}
</script>
<style scoped>
@import "../../assets/public/css/top.css";
@import "../../assets/public/css/bottom.css";
</style>

父组件的调用的三部曲

首先引入子组件

import Bottom from ‘@/components/public/Bottom‘;

注入组件在components中注入

components: {Bottom}

在父亲中应用

<template>
<Bottom v-bind:liAry=‘lidata‘ v-bind:licurrent=‘guidecurrent‘></Bottom>
</template>

到这里就结束了,是不是贼快

2.子组件传值给父组件

父组件在组件上定义了一个自定义事件childFn,事件名为parentFn用于接受子组件传过来的message值。

<!-- 父组件 -->
<template>
    <div class="test">
      <test-com @childFn="parentFn"></test-com>
      <br/> 
      子组件传来的值 : {{message}}
    </div>
</template>

<script>
export default {
    // ...
    data: {
        message: ‘‘
    },
    methods: {
       parentFn(payload) {
        this.message = payload;
      }
    }
}
</script>

子组件是一个buttton按钮,并为其添加了一个click事件,当点击的时候使用$emit()触发事件,把message传给父组件

<!-- 子组件 -->
<template> 
<div class="testCom">
    <input type="text" v-model="message" />
    <button @click="click">Send</button>
</div>
</template>
<script>
export default {
    // ...
    data() {
        return {
          // 默认
          message: ‘我是来自子组件的消息‘
        }
    },
    methods: {
      click() {
            this.$emit(‘childFn‘, this.message);
        }
    }    
}
</script>

在子组件向父亲传值的时候,不可用router-link,不然接受不到父亲定义的函数

vue中父子组件的参数传递和应用

标签:default   tle   public   parent   传值   sse   注入组   style   imp   

原文地址:https://www.cnblogs.com/binmengxue/p/12195932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!