用javascript加vue.js写一个日记,要求能点击写日记按钮能输入日记标题和内容,当点击提交按钮的时候可以将标题和内容提交到左边的列表项中,点击列表项中的删除按钮时,可以把日记标题和内容删除。 点击查看按钮时,可以查看日记的标题和内容,当鼠标列表项中的标题或者内容时可以看到标题和内容。
时间: 2024-03-27 18:41:23 浏览: 123
js/vue 绘制个性化电路图/流程图
以下是一个简单的实现,使用了Vue.js和Bootstrap:
```html
<!DOCTYPE html>
<html>
<head>
<title>日记</title>
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0/css/bootstrap.min.css">
</head>
<body>
<div id="app" class="container mt-4">
<h1 class="mb-4">日记</h1>
<div class="row">
<div class="col-md-6">
<form @submit.prevent="addDiary">
<div class="form-group">
<label for="title">标题</label>
<input type="text" class="form-control" v-model="newDiaryTitle" required>
</div>
<div class="form-group">
<label for="content">内容</label>
<textarea class="form-control" v-model="newDiaryContent" required></textarea>
</div>
<button type="submit" class="btn btn-primary">提交</button>
</form>
</div>
<div class="col-md-6">
<h2 class="mb-4">日记列表</h2>
<ul class="list-group">
<li v-for="(diary, index) in diaries" class="list-group-item">
<div class="d-flex justify-content-between">
<div>
<h5 class="mb-1" @mouseover="hoveredIndex = index" @mouseleave="hoveredIndex = null">{{ diary.title }}</h5>
<p class="mb-1" v-if="hoveredIndex === index">{{ diary.content }}</p>
</div>
<button type="button" class="btn btn-danger" @click="deleteDiary(index)">删除</button>
</div>
</li>
</ul>
</div>
</div>
</div>
<script src="https://cdn.bootcss.com/vue/2.5.13/vue.min.js"></script>
<script>
var app = new Vue({
el: '#app',
data: {
newDiaryTitle: '',
newDiaryContent: '',
diaries: [],
hoveredIndex: null
},
methods: {
addDiary: function() {
if (this.newDiaryTitle && this.newDiaryContent) {
this.diaries.push({
title: this.newDiaryTitle,
content: this.newDiaryContent
});
this.newDiaryTitle = '';
this.newDiaryContent = '';
}
},
deleteDiary: function(index) {
this.diaries.splice(index, 1);
}
}
});
</script>
</body>
</html>
```
在这个实现中,我们使用了Vue.js的组件化和数据绑定特性来构建一个简单的日记应用。在HTML中,我们使用Bootstrap来美化界面。在JavaScript中,我们声明了一个Vue实例,并且定义了一个数据对象来存储日记内容。我们还定义了两个方法来添加和删除日记。在HTML中,我们使用v-for指令来遍历日记数组,并且使用v-model指令来实现数据的双向绑定。同时,我们还使用了一些Vue.js的事件指令来响应用户的操作,比如@click和@mouseover。
阅读全文