应用Prop和$emit实现父子组件之间数据的传递。定义一个按钮和一张图片,通过单击按钮实现放大图片和图片缩小的功能。
时间: 2024-03-19 09:44:31 浏览: 38
好的,我来为您解决这个问题。
首先,我们需要在父组件中定义一个状态来存储图片的大小,然后定义一个方法来实现放大和缩小图片的功能。代码如下:
```vue
<template>
<div>
<button @click="changeSize">放大/缩小</button>
<img :src="src" :style="{ width: size + 'px' }" />
<child-component :size="size" @changeSize="changeSize" />
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
src: 'https://picsum.photos/200',
size: 200
};
},
methods: {
changeSize() {
this.size += 50;
if (this.size > 500) {
this.size = 200;
}
}
}
};
</script>
```
然后,在子组件中定义一个props来接收父组件传递过来的大小,然后定义一个方法来触发父组件的changeSize事件,代码如下:
```vue
<template>
<div>
<button @click="changeSize">放大/缩小</button>
<img :src="src" :style="{ width: size + 'px' }" />
</div>
</template>
<script>
export default {
props: {
size: {
type: Number,
required: true
}
},
data() {
return {
src: 'https://picsum.photos/200'
};
},
methods: {
changeSize() {
this.$emit('changeSize');
}
}
};
</script>
```
现在,我们就可以愉快地放大和缩小图片了!
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)