<!DOCTYPE html>

<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title></title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="">
        <style>
        #app{
            width: 500px;
            margin:200px auto;
            border: 1px solid #ccc;
            padding: 10px;
            border-radius: 10px;
            box-shadow: 0 0 10px #ccc;
        }
        #app h2{
        
            text-align: center;
            margin-bottom: 10px;
        }
        #app ul{
            list-style: none;
            padding: 0;
            margin: 0;
            margin-top: 10px;
            border-top: 1px solid #ccc;
        }
        #app li{
            padding: 10px;
            border-bottom: 1px solid #ccc;
            cursor: pointer;
            transition: all 0.5s;
            background-color: #f5f5f5;
        }
        #app li:hover{
            background-color: #ccc;
        }
        #app input{
            margin-bottom: 10px;
            width: 85%;
            height: 30px;
            
        }
        #app button{
            margin-left: 10px;
            height: 30px;
            
        }
        #app li button{
            float: right;
        }
        </style>
    </head>
    <body>
        <div id="app">
            <h2>记事本</h2>
            <input  type="text" v-model="active" placeholder="请输入内容">
            <button  @click="add">添加</button>
            <ul>
                <li v-for="(item,index) in items" :key="item.id">
                    <span>
                        {{(index+1)+'.'}}
                    </span>
                    {{item.name}}
                    <button @click="del(item.id)">删除</button>
                </li>
                
            </ul>
            <div style="margin-top: 10px;">
                <span style="margin-left: 10px;">总计:{{items.length}}</span>
                <button style="float: right;margin-right: 10px;width: 9%;height: 25px;margin-top: 3px;margin-bottom:2px;" @click="clear">清空</button>
            </div>
           
        </div>
        
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js" ></script>

          <script> 
           var app=new Vue({
            el: '#app',
            data: {
            items: [
                {id:1,name:'唱跳'},
                {id:2,name:'rap'},
                {id:3,name:'篮球'}
            ],
            active:'',
          
                },
            methods:{
                add(){
                    if(this.active){
                        this.items.push({
                            id:+new Date(),
                            name:this.active
                        })
                        this.active=''
                    }
                    else{
                        alert('请输入内容')
                    }
                },
                del(id){
                    this.items=this.items.filter(item=>item.id!==id)
                    console.log(id)
                },
                clear(){
                    this.items=[]
                }
            },
           
            })
            </script>
    </body>
</html>

这段代码是一个简单的记事本应用,使用Vue.js实现了添加、删除、清空功能。下面逐行解析代码:

  1. &lt;!DOCTYPE html>:声明这是一个HTML文档。

  2. &lt;html>:HTML文档的根元素。

  3. &lt;head>:头部元素,用于定义文档的一些元数据,如字符编码、标题、样式表等。

  4. &lt;meta charset="utf-8">:声明文档使用的字符编码为UTF-8。

  5. &lt;meta http-equiv="X-UA-Compatible" content="IE=edge">:告诉IE浏览器使用最新的渲染引擎。

  6. &lt;title>&lt;/title>:文档的标题,这里为空。

  7. &lt;meta name="description" content="">:文档的描述,这里为空。

  8. &lt;meta name="viewport" content="width=device-width, initial-scale=1">:设置文档的视口,使其能够在不同设备上正常显示。

  9. &lt;link rel="stylesheet" href="">:引入样式表,这里为空。

  10. &lt;style>:内部样式表,样式定义在这个标签里。

  11. #app{...}:定义了一个id为app的元素的样式。

  12. &lt;body>:文档的主体部分。

  13. &lt;div id="app">:一个id为app的div元素,这里将作为Vue实例的挂载点。

  14. &lt;h2>记事本&lt;/h2>:一个h2标签,显示标题。

  15. &lt;input type="text" v-model="active" placeholder="请输入内容">:一个文本输入框,使用v-model指令与Vue实例的active属性进行双向绑定。

  16. &lt;button @click="add">添加&lt;/button>:一个按钮,点击时调用Vue实例的add方法。

  17. &lt;ul>:一个无序列表,用于显示记事本条目。

  18. &lt;li v-for="(item,index) in items" :key="item.id">:一个li标签,使用v-for指令遍历Vue实例的items数组,并将每个数组项显示为一个li元素。

  19. &lt;span>{{(index+1)+'.'}}&lt;/span>:一个span标签,显示序号(index+1)。

  20. {{item.name}}:显示每个条目的name属性。

  21. &lt;button @click="del(item.id)">删除&lt;/button>:一个按钮,点击时调用Vue实例的del方法,传入item.id作为参数。

  22. &lt;div style="margin-top: 10px;">:一个div元素,用于显示总计和清空按钮。

  23. &lt;span style="margin-left: 10px;">总计:{{items.length}}&lt;/span>:一个span标签,显示总条目数(items数组的长度)。

  24. &lt;button style="float: right;margin-right: 10px;width: 9%;height: 25px;margin-top: 3px;margin-bottom:2px;" @click="clear">清空&lt;/button>:一个按钮,点击时调用Vue实例的clear方法。

  25. &lt;script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">&lt;/script>:引入Vue.js库。

  26. &lt;script>:内部脚本,JavaScript代码定义在这个标签里。

  27. var app=new Vue({...}):创建一个Vue实例,将其赋值给变量app。

  28. el: '#app':将Vue实例挂载到id为app的元素上。

  29. data: {...}:定义Vue实例的数据对象。

  30. items: [...]:定义一个数组items,用于存储记事本的条目。

  31. active: '':定义一个字符串active,用于存储用户输入的内容。

  32. methods: {...}:定义Vue实例的方法。

  33. add(){...}:add方法,用于向items数组添加一个新的条目。

  34. del(id){...}:del方法,用于删除指定id的条目。

  35. clear(){...}:clear方法,用于清空items数组。

  36. &lt;/script>:脚本结束标签。

整个代码使用Vue.js实现了一个简单的记事本应用,包括添加条目、删除条目、清空条目等功能。使用Vue的数据绑定和方法调用,实现了视图与数据的双向同步。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部