请编写一个 Vue 组件,实现一个计数器。初始值为 0,每点击一次按钮,计数器的值增加 1,并且将计数器的值显示在页面上。
<template>
<div>
<p>计数器的值:{{ count }}</p>
<button @click="increment">增加</button>
</div>
</template>
<script>
export default {
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count++;
}
}
};
</script>
请编写一个 Vue 组件,实现一个简单的待办事项列表。用户可以输入待办事项的标题,点击按钮后,待办事项会被添加到列表中,并且列表中的每个待办事项都有一个删除按钮,点击删除按钮可以将该待办事项从列表中删除。
<template>
<div>
<input type="text" v-model="newTodo">
<button @click="addTodo">添加</button>
<ul>
<li v-for="(todo, index) in todos" :key="index">
{{ todo }}
<button @click="deleteTodo(index)">删除</button>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
newTodo: '',
todos: []
};
},
methods: {
addTodo() {
if (this.newTodo) {
this.todos.push(this.newTodo);
this.newTodo = '';
}
},
deleteTodo(index) {
this.todos.splice(index, 1);
}
}
};
</script>
请编写一个 Vue 组件,实现一个简单的计算器。计算器具有两个输入框和四个按钮,分别对应加法、减法、乘法和除法。用户在输入框中输入两个数字,点击不同的按钮可以执行相应的运算,并将结果显示在页面上。
<template>
<div>
<input type="number" v-model="num1">
<input type="number" v-model="num2">
<button @click="add">+</button>
<button @click="subtract">-</button>
<button @click="multiply">*</button>
<button @click="divide">/</button>
<p>结果:{{ result }}</p>
</div>
</template>
<script>
export default {
data() {
return {
num1: 0,
num2: 0,
result: 0
};
},
methods: {
add() {
this.result = this.num1 + this.num2;
},
subtract() {
this.result = this.num1 - this.num2;
},
multiply() {
this.result = this.num1 * this.num2;
},
divide() {
this.result = this.num1 / this.num2;
}
}
};
</script>
请编写一个 Vue 组件,实现一个简单的倒计时器。用户可以输入倒计时的时间(单位为秒),点击开始按钮后,倒计时开始,页面上显示剩余时间,当倒计时结束时,页面上显示倒计时结束的提示。
<template>
<div>
<input type="number" v-model="seconds">
<button @click="start">开始</button>
<p v-if="counting">剩余时间:{{ remainingTime }} 秒</p>
<p v-else>倒计时结束!</p>
</div>
</template>
<script>
export default {
data() {
return {
seconds: 0,
counting: false,
remainingTime: 0
};
},
methods: {
start() {
this.counting = true;
this.remainingTime = this.seconds;
const timer = setInterval(() => {
this.remainingTime--;
if (this.remainingTime === 0) {
clearInterval(timer);
this.counting = false;
}
}, 1000);
}
}
};
</script>
请编写一个 Vue 组件,实现一个简单的图片轮播器。组件接收一个图片数组作为参数,然后循环播放这些图片。用户可以点击按钮切换到下一张或上一张图片。
<template>
<div>
<button @click="previous">上一张</button>
<img :src="currentImage" alt="轮播图">
<button @click="next">下一张</button>
</div>
</template>
<script>
export default {
props: {
images: {
type: Array,
required: true
}
},
data() {
return {
currentIndex: 0
};
},
computed: {
currentImage() {
return this.images[this.currentIndex];
}
},
methods: {
previous() {
this.currentIndex = (this.currentIndex - 1 + this.images.length) % this.images.length;
},
next() {
this.currentIndex = (this.currentIndex + 1) % this.images.length;
}
}
};
</script>