Vue实现记事本小功能

简介: Vue实现记事本小功能

由于事情繁多,我们有的时候可能会忘记某些时间点需要干的事,今天我来教大家写一个记事本的小功能,记录我们每天需要做的事以免忘记


这里我们需要做一个文本域框,在加一个添加按钮,添加按钮绑定一个方法,用于往笔记列表中添加我们需要记录的数据,在写一个显示我们添加笔记的列表,列表显示的是我们添加的内容和添加内容的时间以及删除按钮,删除按钮绑定一个方法,用于删除我们当前记录的列表项

<div>
      <textarea
        name=""
        id=""
        cols="30"
        rows="10"
        v-model="recordVal"
      ></textarea>
      <button @click="addRecord">保存</button>
    </div>
        <!-- 笔记列表-->
    <ul>
      <li v-for="(item, index) in recordList" :key="index">
        <p>内容:{{ item.content }}</p>
        <div>记录时间:{{item.time}}</div>
   <button @click="removeRecord(item)">删除</button>
      </li>
    </ul>

我们再给笔记列表设置一些样式,使他们能够显示在一行中

ul li {
  width: 600px;
  display: flex;
  align-items: center;
  p {
    width: 200px;
overflow: auto;
word-wrap:break-word;
word-break:break-all;
  }
  div{
    margin: 0 10px;
  }
}

定义两个数据,一个是文本域输入的数据,一个是笔记列表,用于存储记录我们记录的信息

data() {
    return {
      //笔记内容
      recordVal: "",
      // 笔记列表
      recordList: [],
    };
  },

我们在定义一些方法

//添加笔记的方法
 addRecord() {
 //获取到文本域中输入的值
      let value = this.recordVal.trim();
      //判断文本域中的值是否为空,为空则给出对应的提示且退出
      if (!value) {
        alert("值不能为空");
        return;
      }
      //把当前文本域中的内容传递进去,使得能够产生出新的数据
      let HTMLSTR = this.mould(value);
      //将新的数据添加到笔记列表中
      this.recordList.push(HTMLSTR);
      //将文本域中的值置空
      this.recordVal=''
    },
    //数据模板产生函数
    mould(content) {
    //接受文本域的值,产生出笔记内容和记录时间
      return {
        content,
        time: this.handleTime(),
      };
    },
   //获取当前时间并拼接好对应的格式返回出去
    handleTime(str = "年月日::") {
      // 处理补零
      const getTime = (str) => {
        return str.toString().padStart(2, 0);
      };
      // 获取当前时间或者是传入的时间
      const T = new Date();
      // 获取年
      const Y = T.getFullYear();
      // 获取月
      const M = getTime(T.getMonth() + 1);
      // 获取日
      const D = getTime(T.getDate());
      // 获取时
      const H = getTime(T.getHours());
      // 获取分
      const B = getTime(T.getMinutes());
      // 获取秒
      const S = getTime(T.getSeconds());
      return `${Y}${str[0]}${M}${str[1]}${D}${
        str[2] ? str[2] + " " : str[2]
      }${H}${str[3]}${B}${str[4]}${S}`;
    },
//删除笔记项,接收一个参数实参为当前笔记项
    removeRecord(item) {
    //我们利用过滤器方法进行对比当前笔记项和比例列表中的那些项不相等,将不相等的项返回出去保存在笔记列表中
      this.recordList = this.recordList.filter((R) => R!= item);
    },

坚持努力,无惧未来!

相关文章
|
12天前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
28 1
vue学习第四章
|
12天前
|
JavaScript 前端开发
vue学习第九章(v-model)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript与Vue的大一学生,自学前端2年半,正向全栈进发。此篇介绍v-model在不同表单元素中的应用及修饰符的使用,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
26 1
vue学习第九章(v-model)
|
12天前
|
JavaScript 前端开发 开发者
vue学习第十章(组件开发)
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文深入讲解Vue组件的基本使用、全局与局部组件、父子组件通信及数据传递等内容,适合前端开发者学习参考。持续更新中,期待您的关注!🎉🎉🎉
27 1
vue学习第十章(组件开发)
|
18天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
18天前
|
存储 缓存 JavaScript
如何在大型 Vue 应用中有效地管理计算属性和侦听器
在大型 Vue 应用中,合理管理计算属性和侦听器是优化性能和维护性的关键。本文介绍了如何通过模块化、状态管理和避免冗余计算等方法,有效提升应用的响应性和可维护性。
|
17天前
|
JavaScript 前端开发 UED
vue学习第二章
欢迎来到我的博客!我是一名自学了2年半前端的大一学生,熟悉JavaScript与Vue,目前正在向全栈方向发展。如果你从我的博客中有所收获,欢迎关注我,我将持续更新更多优质文章。你的支持是我最大的动力!🎉🎉🎉
26 3
|
17天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,熟悉JavaScript与Vue,正向全栈方向发展。博客内容涵盖Vue基础、列表展示及计数器案例等,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
36 2
|
存储 JavaScript 网络架构
Vue3新增功能特性
Vue3相比Vue2更新技术点
|
18天前
|
存储 缓存 JavaScript
在 Vue 中使用 computed 和 watch 时,性能问题探讨
本文探讨了在 Vue.js 中使用 computed 计算属性和 watch 监听器时可能遇到的性能问题,并提供了优化建议,帮助开发者提高应用性能。
|
18天前
|
存储 缓存 JavaScript
Vue 中 computed 和 watch 的差异
Vue 中的 `computed` 和 `watch` 都用于处理数据变化,但使用场景不同。`computed` 用于计算属性,依赖于其他数据自动更新;`watch` 用于监听数据变化,执行异步或复杂操作。