用Vue.js实现简单记事本

本文详细介绍了使用Vue.js构建一个记事本应用的设计思路和实现过程,包括列表渲染、数据新增、删除及统计功能。通过v-for、v-model等指令,结合事件方法如@keyup和@click,实现动态添加、删除列表项,以及计数显示。同时提供了完整的代码示例。
摘要由CSDN通过智能技术生成

一、设计思路

【思路一:列表渲染】

        步骤一:因为列表要显示多条,所以定义一个数组把多条数据存起来。

        步骤二:然后再对着li进行v-for,根据这个数组来渲染。

        步骤三:使用插值语法,更改需要渲染的标题、序号。

【思路二:数据新增】

        步骤四:需要拿到输入框的内容,在input输入框中使用v-model双向绑定,绑定的元素需要在data中定义。步骤五:因为按回车就添加,意为着输入框要加事件keyup,并且只能由enter键触发。

        步骤六:按回车不能直接添加到数组里,因为可能没有输入内容,所以要做一个非空判断。步骤七:不为空,则添加到数组中。

        步骤八:添加到数组后,就把输入框内容清除。

        (这时候可以把步骤一定义的数组死数据删掉,让列表数据展示我们输入的内容。步骤九:完善“空空如也”显示。

【思路三:数据删除】

         步骤十:给“删除按钮”添加点击事件。

        步骤十一:给“清空按钮”添加点击事件,设置点击时将数组全部重新赋值为空数组,则数据全部清空。

  【思路四:数据统计】

        步骤十二:统计合计,就是统计数组的长度。

二、需要的事件方法

【事件方法】
@click: 当单击元素时,发生click事件。
@dbclick:当双击元素时,发生dbclick事件。
@focus:当元素获得焦点时,发生focus事件。
@blur:当元素失去焦点时发生blur事件。
@submit:当提交表单时,发生submit事件。
@keydown:当键盘被按下时,发生keydown事件。
@keyup:当键盘被松开,发生keyups事件。
@mouseenter:当鼠标指针穿过(进入)被选元素时,会发生mousedown事件。
@mousedown:当鼠标指针移动到元素上方,并按下鼠标左键,会发生mousedown事件。
@mouseleave:当鼠标离开被选元素时,会发生mouseleave事件。
@mousemove:当鼠标指针在指定的元素中移动时,会发生 mousemove 事件。
@mouseout:在鼠标指针离开被选元素或任意子元素时都会被触发。
@mouseover:当鼠标指针位于元素上方时,会发生 mouseover 事件。
@mouseup:当鼠标指针移动到元素上方,并松开鼠标左键时,会发生 mouseup 事件。

 三、代码展示

<div id="app">
    <h2>记事本</h2>
    <div class="main">

    <input type="text" v-model="title"  @keyup.enter="add"/>
    <ul>

        <li v-for="(item,index) in list" :key="item.id">
           <div class="content"><span>{{ index + 1 }}</span> {{item.title}} </div>
           <button  @click="list.splice(index,1)">❌</button>
        </li>
    </ul>
    <p class="empty"v-show="list.length == 0">空空如也...</p >
    </div>

    <div class="bottom">
         <span>合计:{{ list.length }}</span>
         <span @click="list = []">清空</span>
        </div>
    </div>
    <script src="./vue.js"></script>

    <script> 
      new Vue({
         el:'#app',
         data:{ 
        title:'',
        list:[
             { id:1,title:'吃饭'},
             { id:2, title:'睡觉'},
            { id:3, title:'打豆豆'}
         ]
        }, 
        methods:{ 
            add(){。
               if(this.title == '') return alert('请输入一点内容')
                this.list.unshift({
                    id: Date.now(),
                    title: this.title,
                }) 
                this.title =''
            }
        }
     })
</script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值