Vue 留言板 升降序

举报
达拉崩巴斑得贝迪卜多 发表于 2021/12/24 15:14:52 2021/12/24
【摘要】 Vue 留言板 升降序功能要求使用Vue完成留言板案例;使用文本域编辑留言内容,点击提交按钮,将留言信息展示在留言框下方的列表中;留言列表中显示留言内容和留言时间;创建两个按钮,分别显示降序和升序,点击不同的按钮,对留言列表进行重新排序,按照发布时间排序;(留言列表为数组、每条留言内容是一个对象,参考TodoList案例)<!DOCTYPE html><html lang="en"><...

Vue 留言板 升降序

功能要求

  1. 使用Vue完成留言板案例;
  2. 使用文本域编辑留言内容,点击提交按钮,将留言信息展示在留言框下方的列表中;
  3. 留言列表中显示留言内容和留言时间;
  4. 创建两个按钮,分别显示降序和升序,点击不同的按钮,对留言列表进行重新排序,按照发布时间排序;
    (留言列表为数组、每条留言内容是一个对象,参考TodoList案例)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.11/vue.min.js"></script>
</head>
<body>
    <div id="app">
        <input type="text" v-model="text">
        <button @click="add">提交</button>
        <button @click="sort(1)">升序</button>
        <button @click="sort(2)">降序</button>
        <table border="1" width="800px" cellspacing="0">
            <tr>
                <th>序号</th>
                <th>留言内容</th>
                <th>时间</th>
                <th>操作</th>
            </tr>
            <tr v-for="(v,i) in list">
                <td>{{i+1}}</td> <td>{{v.text}}</td> <br> <br>
                <td>{{v.times}}</td> <td @click="del(i)">删除</td> <br> <br>

            </tr>
        </table>
    </div>
    <script>
        new Vue({
            el: "#app",
            data: {
                text: "",
                list: []
            },
            methods: {
                add() {
                    if (!this.text) return;
                    this.list.push({
                        text: this.text,
                        times: new Date().toLocaleString().replace(/\//g, '-'), //转为当地时间
                        time: new Date().getTime(), //获取的毫秒数
                    })
                    this.text = ""
                },
                sort(id) {
                    switch (id) {
                        case 1:
                            this.list.sort((x, y) => {
                                return x.time - y.time;
                            })
                            break;
                        case 2:
                            this.list.sort((x, y) => {
                                return y.time - x.time;
                            })
                            break;
                    }
                },
                del(i) {
                    this.list.splice(i, 1)
                }
            }
        })
    </script>
</body>

</html>

数组排序

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title></title>
	<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.11/vue.min.js"></script>
</head>

<body>
	<div id="root">
		<textarea v-model="text" rows="3" cols="25"></textarea>
		<button @click="submit">提交</button>
		<p>
			<button @click="sort(1)">最新留言</button>
			<button @click="sort(2)">最早留言</button>
		</p>
		<h3>留言:</h3>
		<ul>
			<li v-for="item in list">
				<p>{{getParseTime(item.time)}}</p>
				<p>{{item.text}}</p>
			</li>
		</ul>
	</div>

	<script type="text/javascript">
		new Vue({
			el: "#root",
			data: {
				list: [],
				text: ""
			},
			methods: {
				submit() { //提交按钮
					this.list.push({
						text: this.text,
						time: new Date().getTime()
					})
					this.text = ""
				},
				getParseTime(ms) { //留言时间,年-月-日 时:分:秒 格式
					let time = new Date();
					time.setTime(ms)
					let submitTime =
						`${time.getFullYear()}-${time.getMonth()+1}-${time.getDate()} ${time.getHours()}:${time.getMinutes()}:${time.getSeconds()}`
					return submitTime
				},
				sort(id) { //排序,id为1是降序,id为2是升序
					switch (id) {
						case 1:
							this.list.sort((a, b) => {
								return b.time - a.time
							})
							break;
						case 2:
							this.list.sort((a, b) => {
								return a.time - b.time
							})
							break;
					}
				}
			}
		})
	</script>
</body>

</html>
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。