zoukankan      html  css  js  c++  java
  • Vue的父子组件数据传递

    由父组件向子组件传递数据:

    比如app向Vfooter组件传递数据:得现在父组件的APP中给子组件显示部分绑定自定义属性 数据可以是列表 数字 对象……

    songList是父组件里定义过的列表数据

        data(){
          return{
            msg:'vue',
            songList:[
              {song:"星月神话",author:"金莎"},
              {song:"红颜旧",author:"刘涛"},
              {song:"九张机",author:"叶清炫"}
            ],
            imgIndex:0,
          }
        },

    <Vfooter v-bind:song="songList"></Vfooter>

    此时去子类组件Vfooter组件中检查数据类型,需要应用props方法

    props:{
          song:Array
        },

    当验证通过,数据类型与期望类型一致后,可以通过v-for去对数据操作……

    <footer class="footer">
       <h3>我是页尾 关于我们</h3>
        <ul>
          <li v-for="item in song">
            {{item.author}}
          </li>
        </ul>
      </footer>

    *********************************************************************************************

    子组件向父组件传递数据:

    例如 Vcontent给APP里面传:

    先在子组件绑定一个响应事件

    <template>
      <div class="content">
        <h2>中心区域</h2>
        <button @click="addSong">添加歌手</button>
      </div>
    </template>

    这次点击会触发当前组件下的addSong方法,而在此方法里需要让其找到对应的自定义父组件响应

    此时用到this.$emit(父组件待响应事件,待传递数据) 

      methods:{
          addSong(){
              this.$emit("addAuth",{song:"天下",author:"张杰"});
          }
        },

    父组件此时的addAuth方法会执行对应的方法 对应的方法接收数据参数可以省略,但到下面执行方法时必须有形参

    <Vcontent v-on:addAuth="addStar"></Vcontent>

    方法执行,接收数据,并执行相应操作

    methods:{
            addStar(s){
                //alert(s);
                this.songList.push(s)
            },
        }
    }

    S为实际接收到的数据,此处不可直接写str表示,会异常

  • 相关阅读:
    Thinking in Ramda: Getting Started
    计算机网络 第一章 绪论(习题)
    URI和URL傻傻分不清
    mac下安装sshpass并配置自动登录
    项目 NodeJS 版本锁定及自动切换
    项目部署篇(一)后端springboot项目打包和部署
    安卓开启GPS,native.js
    native.js,安卓判断APP是否在电池优化白名单
    Self-Supervised Visual Representations Learning by Contrastive Mask Prediction
    wireshark抓包工具使用介绍(附图)
  • 原文地址:https://www.cnblogs.com/wen-kang/p/9976248.html
Copyright © 2011-2022 走看看