VUE留言板

效果预览图

完整代码

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>作业</title>
    <style>
        body{
            background: #ecdada;
        }
        *{
            margin: 0;
            padding: 0;
        }
        #app{
            width: 1000px;
            height: 100%;
            margin: 10px auto;
        }
        h2{
            text-align: center;
            margin-top: 10px;
        }
        .wp{
            width: 960px;
            height: 250px;
            background: pink;
            overflow: hidden;
            border-radius: 10px;
            padding: 20px;
        }
        textarea{
            display: block;
            margin: 5px auto;
            border-radius: 10px;
            padding: 10px;
            resize: none;
        }
        .wp button{
            display: block;
            width: 60px;
            height: 40px;
            background: #99ead6;
            margin-left: auto;
            border: none;
            border-radius: 5px;
            cursor: pointer;
        }
        input{
            width: 200px;
            height: 30px;
            margin-left: 5px;
            padding-left: 10px;
            border-radius: 5px;
        }
        .pl{
            width: 1000px;
            height: 180px;
            background: #fff;
            overflow: hidden;
            border-radius: 10px;
            margin-top: 20px;
        }
        span{
            width: 980px;
            height: 40px;
            display: block;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            margin-left: 10px;
        }
        p{
            margin: 0 0 10px 10px;
        }
        h3{
            margin: 10px;
        }
        button{
            display: inline-block;
            width: 60px;
            height: 40px;
            background: #99ead6;
            border: none;
            border-radius: 5px;
            margin-top: 10px;
            margin-left: 20px;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div id="app">
    <h2>留言板</h2>
    <div class="wp">
         <input type="text" placeholder="给自己定义一个身份吧(默认匿名)" v-model="val">
        <textarea class="area" rows="10" cols="130" placeholder="有什么新鲜事想告诉大家" v-model="val2"></textarea>
        <button v-if="fl==1" @click="add">发布</button>
        <button  v-else-if="fl==2" @click="add2(jk)">提交修改</button>
    </div>
    <div class="pl" v-for="(item,index) in arr">
     <h3>{{arr[index].name}}</h3>
     <p>{{arr[index].times}}</p>
     <span>{{arr[index].cont}}</span>
     <button @click="sc(index)">删除</button>
     <button @click="xg(index)">修改</button>
    
    </div>
    
    </div>
</body>
</html>
<script type="module">
    import { createApp } from './js/vue.esm-browser.js';
    createApp({
         data() {
            return {
                arr:[
                    {name:'小姚学前端',times:'时间',cont:'学习111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,好好学习,天天向上'},
                ],
                val:'',
                val2:'',
                fl:1,
                jk:-1,
            }
         },
         methods:{
            add(){
                let nn = new Date().toLocaleString()
                if (this.val2=='') {
                    alert('内容不能为空')
                }else if (this.val2!='') {
                    let obj={
                    name:this.val==''? '来自匿名':this.val,
                    times:nn,
                    cont:this.val2
                }
                this.arr.unshift(obj)
                this.val2=''
                this.val=''
                this.fl=1
                }
                
            },
            add2(jk){
                let nn = new Date().toLocaleString()
                if (this.val2=='') {
                    alert('内容不能为空')
                }else if (this.val2!='') {
                    let obj={
                    name:this.val==''? '来自匿名':this.val,
                    times:nn+'修改',
                    cont:this.val2
                }
                this.arr[jk]=obj
                this.val2=''
                this.val=''
                this.fl=1
                }
            },
            sc(index){
                let userResponse = window.confirm("确定要删除留言吗");
            if (userResponse) {
                this.arr.splice(index,1)
            } else {
              
            }
            },
            xg(index){
                this.val2=this.arr[index].cont;
                this.val=this.arr[index].name
                this.fl=2
                this.jk=index
            }
         }
    }).mount('#app')
</script>
相关推荐
এ慕ོ冬℘゜2 小时前
使用 jQuery 动态渲染表格与状态切换
前端·javascript·jquery
人间凡尔赛2 小时前
2026 前端必修:4 个让 CSS 脱胎换骨的现代新特性(附实战代码)
前端·css
智购科技自动售货机厂家3 小时前
2026自动售货机AI视觉识别优化:从YOLOv11n模型量化到RKNN部署的端侧推理工程实践~YH
javascript·人工智能·yolo·机器学习·计算机视觉·目标跟踪·perl
晓说前端3 小时前
TypeScript 核心语法应用 —— Vue 3 中的使用(下)
前端·javascript·typescript·类型系统
lancyu6 小时前
# Agent Loop:AI Agent 的唯一直心骨
开发语言·javascript·人工智能
半个落月7 小时前
JavaScript 单例模式详解:从唯一实例到按钮事件
javascript
weixin_BYSJ19878 小时前
springboot智慧公共交通系统---附源码51123
java·javascript·spring boot·python·django·flask·php
sir.山9 小时前
在 Vue 3 项目中使用 Mock 数据
前端·vue.js·vue3·vite
你别说话了18 小时前
Vue项目解决跨域
前端·javascript·vue.js
指尖时光.18 小时前
Three.js 超全入门综合案例
开发语言·javascript·ecmascript