zoukankan      html  css  js  c++  java
  • 父子组件间传值

    环境说明: vue-cli(vue 3.x) + ant-vue

    父组件(Album.vue)使用:

    <template>
      <div>
        <a-button type="primary" icon="plus" @click="uploadImage">图片</a-button>
        <upload-image :visible.sync="visible"></upload-image>
      </div>
    </template>
    
    <script>
    import UploadImage from "./UploadImage";
    
    export default {
      name: "Album",
      components: { UploadImage },
      data: function() {
        return {
          visible: false
        };
      },
      methods: {
        uploadImage() {
          this.visible = true;
        }
      }
    };
    </script>
    
    <style scoped>
    </style>
    

     子组件(UploadImage.vue):

    <template>
      <a-modal
        :title="title"
        :visible="visible"
    		@cancel="handleCancel"
    		@ok="handleOk"
      >
    		<h1>Some text here</h1>
      </a-modal>
    </template>
    
    <script>
    export default {
    	name: "UploadImage",
      props: {
        title: {
          type: String,
          default: "上传图片"
    		},
    		visible: {
    			type: Boolean,
    			default: false,
    			required: true
    		}
    	},
    	data: function() {
    		return {
    		}
    	},
    	methods: {
    		handleCancel() {
    			this.$emit('update:visible', false);
    		},
    		handleOk() {
    			this.$emit('update:visible', false);
    		}
    	}
    };
    </script>
    
    <style lang="less" scoped>
    </style>
    

     综合:

    1. 父组件使用时通过属性传递一个值到子组件, 并添加.sync修饰符

    2. 子组件得到初始值后,若是修改了属性的值,通过this.$emit('update:xxx', newValue)修改父组件中绑定的变量值!

    3. 注意子组件中v-model不能绑定一个属性, 因为属性是单向数据流,但是v-model需要绑定的是一个双向数据流的变量!

  • 相关阅读:
    JS面向对象的理解
    引用类型值的相等判断
    数组的常用方法
    得到一定范围内的随机数
    数组随机排序
    【目标检测大集合】R-FCN、SSD、YOLO2、faster-rcnn和labelImg实验笔记
    卷积层和池化层学习
    R-FCN:基于区域的全卷积网络来检测物体
    【目标检测】Faster RCNN算法详解
    Selective Search for Object Recognition
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/11439167.html
Copyright © 2011-2022 走看看