img :src双向绑定报错
时间: 2023-09-16 22:15:15 浏览: 97
关于`img`标签的`src`属性双向绑定报错,可能是因为Vue.js版本问题。在Vue.js 2.x版本中,`img`标签的`src`属性双向绑定需要使用`.sync`修饰符,示例代码如下:
```
<template>
<div>
<img :src.sync="imageUrl">
<button @click="changeUrl">Change Image URL</button>
</div>
</template>
<script>
export default {
data() {
return {
imageUrl: 'https://example.com/image.jpg'
}
},
methods: {
changeUrl() {
this.imageUrl = 'https://example.com/new-image.jpg';
}
}
}
</script>
```
如果你使用的是Vue.js 3.x版本,`img`标签的`src`属性双向绑定需要使用`v-model`指令,示例代码如下:
```
<template>
<div>
<img v-model="imageUrl">
<button @click="changeUrl">Change Image URL</button>
</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const imageUrl = ref('https://example.com/image.jpg');
const changeUrl = () => {
imageUrl.value = 'https://example.com/new-image.jpg';
}
return {
imageUrl,
changeUrl
}
}
}
</script>
```
另外,也可以通过在`img`标签中使用`key`属性来强制重新加载图片,例如:
```
<template>
<div>
<img :src="imageUrl" :key="imageUrl">
<button @click="changeUrl">Change Image URL</button>
</div>
</template>
<script>
export default {
data() {
return {
imageUrl: 'https://example.com/image.jpg'
}
},
methods: {
changeUrl() {
this.imageUrl = 'https://example.com/new-image.jpg';
}
}
}
</script>
```
每次更新`imageUrl`的值时,`img`标签的`key`属性也会更新,从而强制重新加载图片。
阅读全文