用vue实现包含id英雄名字类型技能血条及更改删除添加
时间: 2024-06-09 07:06:11 浏览: 152
你可以参考以下代码实现:
1. 定义一个Hero类,包含id、名字、类型、技能和血条等属性:
```javascript
class Hero {
constructor(id, name, type, skill, hp) {
this.id = id
this.name = name
this.type = type
this.skill = skill
this.hp = hp
}
}
```
2. 在Vue的data属性中定义一个heroes数组,用于存储所有英雄对象:
```javascript
data() {
return {
heroes: [
new Hero(1, '刘备', '武将', '仁德', 100),
new Hero(2, '关羽', '武将', '青龙偃月刀', 100),
new Hero(3, '张飞', '武将', '丈八蛇矛', 100),
new Hero(4, '赵云', '武将', '龙胆亮银枪', 100),
],
newHero: {
id: '',
name: '',
type: '',
skill: '',
hp: 100,
},
}
},
```
3. 在Vue的template模板中,显示所有英雄信息并提供编辑和删除功能:
```html
<ul>
<li v-for="hero in heroes" :key="hero.id">
<div>ID: {{ hero.id }}</div>
<div>名字: {{ hero.name }}</div>
<div>类型: {{ hero.type }}</div>
<div>技能: {{ hero.skill }}</div>
<div>血条: {{ hero.hp }}</div>
<button @click="editHero(hero)">编辑</button>
<button @click="deleteHero(hero)">删除</button>
</li>
</ul>
```
4. 在Vue的methods方法中,实现新增、编辑和删除英雄的功能:
```javascript
methods: {
addHero() {
this.newHero.id = this.heroes.length + 1
this.heroes.push(new Hero(this.newHero.id, this.newHero.name, this.newHero.type, this.newHero.skill, this.newHero.hp))
this.newHero = {
id: '',
name: '',
type: '',
skill: '',
hp: 100,
}
},
editHero(hero) {
this.newHero = Object.assign({}, hero)
this.deleteHero(hero)
},
deleteHero(hero) {
this.heroes = this.heroes.filter(item => item.id !== hero.id)
},
},
```
5. 在Vue的template模板中,提供一个表单用于新增或编辑英雄的信息:
```html
<form @submit.prevent="addHero">
<div>
<label>ID:</label>
<input v-model.number="newHero.id" required>
</div>
<div>
<label>名字:</label>
<input v-model="newHero.name" required>
</div>
<div>
<label>类型:</label>
<input v-model="newHero.type" required>
</div>
<div>
<label>技能:</label>
<input v-model="newHero.skill" required>
</div>
<div>
<label>血条:</label>
<input v-model.number="newHero.hp" required>
</div>
<button type="submit">{{ newHero.id ? '编辑' : '新增' }}</button>
</form>
```
这样,你就可以使用Vue实现包含id、英雄名字、类型、技能、血条及更改、删除、添加功能的英雄列表了。
阅读全文