10 uniapp-完善底部图片点击(涉及父组件调用子组件内的方法)

10 完善底部图片点击(涉及父组件调用子组件内的方法)

一 实现的效果

在没有图片的时候添加图片的+默认不显示。

通过底部图片图标按钮进行添加图片。

二 思路

1 为底部图片图标编辑点击事件

2 通过逻辑控制隐藏或者显示子组件里面的模板内容

0 扩展知识 父组件调用子组件的方法

# 父组件中
<!-- 多图上传 --> 
		<upload-image :list="imageList" :show="showTag" ref="uploadImage" @change="changeImage" ></upload-image>
# 父组件中调用子组件的方法
		this.$refs.uploadImage.chooseImage()

1 为底部图片图标编辑点击事件

....
<!-- 多图上传 --> 
		<upload-image :list="imageList" :show="showTag" ref="uploadImage" @change="changeImage" ></upload-image>
....
<view class="iconfont icon-tupian footer-btn animated " hover-class="jello" @click="iconClickEvent('uploadImage')"></view>
....
// 底部图片点击时间
iconClickEvent(e){ 
				switch (e){
					case 'uploadImage':
					// 通过这宗方式使用子组件里面的方法。
					this.$refs.uploadImage.chooseImage()
						break;
					
				}
			},

2 通过逻辑控制隐藏或者显示子组件里面的模板内容(重点)

父组件中

# 父组件中
<!-- 多图上传 --> 
		<upload-image :list="imageList" :show="showTag" ref="uploadImage" @change="changeImage" ></upload-image>

computed:{
			showTag() {
				return this.imageList.length>0
			}
				
		},

子组件中

<template>
	<view>

		<view class="py-2" v-if="show">
      .....

....
props:{
			list:Array,
			show:{
				type:Boolean,
				default:true
			}
		},
    
# 最为核心 
为什么不直接在调用子组件的时候直接使用v-if,
因为这样子组件不加载,导致父组件无法使用子组件的方法
所以父组件只做一个参数来控制子组件的标签部分不渲染就ok,但是子组件还是要加载。
posted @ 2020-04-09 11:32  张明岩  阅读(553)  评论(0编辑  收藏  举报