zoukankan      html  css  js  c++  java
  • vue中父子组件的参数传递和应用

    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,不然接受不到父亲定义的函数

  • 相关阅读:
    添加Google Admob到ANDROID应用中
    linux命令及实例说明一:cd、ls、rmdir、rm、mkdir
    android中dip、dp、px、sp和屏幕密度
    在程序中读取ANDROID应用的程序名称和版本号
    linux常用命令及实例二:cp、mv、chown、chmod、find
    Android开发,常用的终端命令
    eclipse里配置solr开发测试环境
    自定义Dialog之Progress(二)
    android 判断网络状态
    hive cli命令行选项
  • 原文地址:https://www.cnblogs.com/binmengxue/p/12195932.html
Copyright © 2011-2022 走看看