使用 vue cli 重新制作一个 todolist

Vue实现todoList完整功能 文章目录今日小结:vue脚手架父子组件之间传值父组件给子组件传值子组件给父组件传值window.localStorage实现ToDoList功能代码地址 今日小结: 使用vue脚手架进行项目的搭建,对于真个页面使用组件来进行页面的拆分,练习使用父子组件的之间的传值; vue脚手架 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统 @vue/cli 3.x 安装新版本的Vue... 阅读详情

首先,进入工程的目录,使用命令启动该工程 npm run start / npm run dev [可以参考工程目录下的 package.json文件]

(其中, x.vue 文件就是一个单文件组件)

下一步,更改单文件组件 x.vue.

  注意,Vue语法要求,.vue文件中,<template>标签中,只能包含一个根元素。

首先将template 中的结构写上:

<template>
  <div>
    <div>
      <input />
      <button>提交</button>
    </div>
    <div>
      <ul>
      </ul>
    </div>
  </div>
</template>

然后,进行数据绑定:

其中,data 在 vue cli 中,作为一个组件,data 以函数的形式存在,不再像以前,以对象形式存在。函数的返回值,为具体的数据。

<script>
  export default{
    data () {
      return {
        inputValue: ''
      }
    }
  }
</script>

数据绑定:

<template>
  <div>
    <div>
      <input v-model='inputValue'/>
      <button @click='handleSubmit'>提交</button>
    </div>
    <div>
      <ul>
      </ul>
    </div>
  </div>
</template>

<script>
  export default{
    data () {
      return {
        inputValue: '',
        list: []
      }
    },
    methods:{
      handleSubmit (){
        this.list.push(this.inputValue);
        this.inputValue = '';
      }
    }
  }
</script>

ul li 组件 拆分

不同与之前,Vue cli 拆分组件: 在 src 目录下 components 下使用 xxx.vue 

  引用该组件:

<template>
  <div>
    <div>
      <input v-model='inputValue'/>
      <button @click='handleSubmit'>提交</button>
    </div>
    <div>
      <ul>
        <todo-item></todo-item>
      </ul>
    </div>
  </div>
</template>

<script>
  import TodoItem from './components/Todoitem'
  export default{
    // 局部组件
    components:{
      'todo-item': TodoItem
    },
    data () {
      return {
        inputValue: '',
        list: []
      }
    },
    methods:{
      handleSubmit (){
        this.list.push(this.inputValue);
        this.inputValue = '';
      }
    }
  }
</script>

todo-list 向子组件传值

<template>
  <div>
    <div>
      <input v-model='inputValue'/>
      <button @click='handleSubmit'>提交</button>
    </div>
    <div>
      <ul>
        <todo-item
          v-for='(item,index) of list'
          :content="item"
        ></todo-item>
      </ul>
    </div>
  </div>
</template>

<script>
  import TodoItem from './components/Todoitem'
  export default{
    // 局部组件
    components:{
      'todo-item': TodoItem
    },
    data () {
      return {
        inputValue: '',
        list: []
      }
    },
    methods:{
      handleSubmit (){
        this.list.push(this.inputValue);
        this.inputValue = '';
      }
    }
  }
</script>

子组件中,申明使用的属性,并使用插值表达式使用:

<template>
  <li>{{content}}</li>
</template>

<script>
export default {
  props: ['content']
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>

</style>

删除子组件:

子组件文件:

<template>
  <li @click="handleDelete">{{content}}</li>
</template>

<script>
export default {
  props: ['content', 'index'],
  methods: {
  	handleDelete () {
  		this.$emit('delete',this.index);
  	}
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>

</style>

父组件文件:

<template>
  <div>
    <div>
      <input v-model='inputValue'/>
      <button @click='handleSubmit'>提交</button>
    </div>
    <div>
      <ul>
        <todo-item
          v-for='(item,index) of list'
          :key="item"
          :content="item"
          :index="index"
          @delete="handleDelete"
        ></todo-item>
      </ul>
    </div>
  </div>
</template>

<script>
  import TodoItem from './components/Todoitem'
  export default{
    // 局部组件
    components:{
      'todo-item': TodoItem
    },
    data () {
      return {
        inputValue: '',
        list: []
      }
    },
    methods:{
      handleSubmit (){
        this.list.push(this.inputValue);
        this.inputValue = '';
      },
      handleDelete (index){
        this.list.splice(index, 1);
      }
    }
  }
</script>

 

Vue3全家桶入门 (通过vue-cli脚手架搭建todolist项目环境,深入vue3.0核心知识) todolist项目准备 vue3.0环境搭建 进入想要的目录路径:vue create todolist 选择select features,点击回车 上下键移动按空格选择,一定不要按回车,这样就进入下一步了 我们按空格选择Router和vuex和下面的css预处理器,我们暂时先把Linter这个关闭掉 我们选择3.x的版本,按回车 路由是否选择history模式,写Y按回车 这一步选择css预处理器,我就选择一个less 配置项就选择它默认的配置项 .. 阅读详情

相关推荐

使用 Vue3+TS 开发一个TODOList的应用

本文适合有Vue2基础的同学 首先安装Vuecli (4.5.0以上版本) 然后 执行 vue create todoapp 然后选项选第三个 然后选择有TS的选项,再选择Vue的版本为3,然后创建项目。 我们使用ref属性来进行创建项目 先来看html结构 <div class="todo-container"> <div class="todo-wrap"> <div class="todo-header"> <input type="t.

qq_43475182的博客 1084

使用vue-cli开发TodoList

一预备知识 1目录结构 目录/文件 说明 build 项目构建(webpack)相关代码 config 配置目录,包括端口号等。我们初学可以使用默认的。 node_modules npm 加载的项目依赖模块 sr...

实践求真知 303

使用Vue-Cli开发TodoList项目

cnpm install 命令生成 node_modules文件。 在进行工程化开发时,主要编写 src 目录下的代码,打开 src 看到 App.vue,将App.vue改成TodoList.vue, components下的helloworld.vue改成todoItem.vue,如下图 需要修改main.js文件: 修改router下的index.js文件如下图 Tod...

吴小花的博客 588

前端笔记-使用vue-cli(脚手架)开发TodoList

目录 过程 结果 过程 命令行工具CLI,可以快速搭建大型简单应用 #全局安装 vue-cli npm install --global vue-cli #创建一个局域 webpack 模板的新项目 vue init webpack my-project #安装依赖 cd my-project npm run dev 这样就可以了, 这里我使用WebStorm...

IT1995的博客 4789

微信小程序音视频通话(for硬件)授权与设备注册实战指南

本文详细介绍了微信小程序音视频通话(for硬件)组件的开发实践,涵盖授权流程、设备注册与VoIP插件集成。重点解析了如何通过服务端获取snTicket实现用户授权,确保硬件设备与微信端的音视频通话安全可靠,适用于智能门禁、话机等物联网场景。

u6v7w8x的博客 945

一文读懂GAN, pix2pix, CycleGAN和pix2pixHD

本文翻译、总结自朱俊伟的线上报告,主要讲了如何用机器学习生成图片。 来源:Games2018 Webinar 64期 :Siggraph 2018优秀博士论文报告 人员信息 主讲嘉宾 姓名:朱俊彦(Jun-Yan Zhu) 现状:麻省理工学院博士后(PostDoc at MIT),计算机科学与人工智能实验室(Computer Science and Artificial In...

gdymind的博客 6万+

vue-cli todolist

【代码】vue-cli todolist。

宏斌的博客 342

VS2015编译配置GDAL(图文并茂、超详细!!!)

文章目录一、GDAL介绍二、下载GDAL三、修改源代码四、工具命令提示符操作五、编译GDAL六、安装GDAL七、在VS2015的项目中配置GDAL八、添加环境变量九、测试是否配置成功 一、GDAL介绍 GDAL(Geospatial Data Abstraction Library)是一个在XMIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。因此

weixin_46196863的博客 3757

【vue】vue、vue-cli2实现todolist功能

前提: 1、使用Sublime text编辑器; 2、安装nodejs,配置环境变量,在系统变量中编辑path变量,选择其两端中的某一端添加nodejs的安装路径并以分号';'间隔(谨慎操作!不要破坏原有数据!此处添加在首段),以便npm命令可以全局使用; 3、配置好环境变量后,使用win+R重新启动windows命令行,分别输入node -v;npm -v来查看版本号,以确认是否可用;...

zhangankang的博客 660

win11系统ping另一台电脑上VMware虚拟机的IP

我是用了两台电脑,所以刚才遇到一个问题就是两台电脑的IP 在同一局域网内ping不通。于是就找了很多资料,经过坚强的绝望后终于解决了。 下开始解决问题: VMWare提供了三种工作模式:bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。 1. bridged(桥接模式)   在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚

qq_42817360的博客 3239

【UE 反射】反射的原理是什么?如何使用机制?

静态类型检查确保了类型的早期一致性和高效的代码执行,但减少了灵活性。动态类型检查提供了更大的灵活性,但增加了运行时的开销和潜在的错误。反射作为一种动态特性,无论是在静态类型语言还是动态类型语言中,都提供了强大的运行时类型操作能力,但也伴随着性能和安全性方面的权衡。通过理解这些联系,开发者可以在不同的编程语言和应用场景中选择适合的类型检查方式和反射机制,以实现所需的动态行为和灵活性,同时保证性能和安全性。

hhw_hhw的博客 6034

Vue之ToDoList实战

之前的文章windows下搭建vue开发环境,我们已经搭建好了vue的环境,并且写了Vue系列之WebPack与Eslint,对vue项目的整体情况有了了解,这篇文章我们就来练习一下vue,实现ToDoList项目。 以下是我们的项目目录结构: 请点击此处输入图片描述 在这个ToDoList当中,涉及到知识点包括以下内容: 1、创建Vue实例: 在main

wu__di的博客 1万+

UNet 改进(3):CBAM模块的融合创新

CBAM模块可以灵活地添加到网络的不同位置,本实现选择在初始卷积后添加,既提升了性能又不过度增加计算负担。UNet_CBAM通过集成注意力机制,使网络能够自动聚焦于图像中最相关的区域和特征通道,从而提升了分割性能。然而,传统的UNet在处理复杂场景时,对所有空间位置和通道特征一视同仁,这可能导致对重要特征的关注不足。在实际应用中,特别是在医学图像分析等需要精确分割的场景中,UNet_CBAM展现出了优异的性能。:CBAM添加的计算量很小,却能带来显著的性能提升,具有很好的性价比。

2401_82355416的博客 1645

如何通过 Vue-Cli3 - Vuex 完成一个 TodoList

昨天大概粗糙的了解了一下Vue的概况之后,并没有从框架、语法的细节来进一步学习。那今天通过一个简单的实例来继续完善一下Vue这方面的空白,用一些看得见的效果摸的着的代码在不断完成小目标的过程中慢慢消化一下相关的知识点。当然用一个简单的实例来完全掌握Vue也不太现实,只是通过这样一个例子来树立学习的信心,了解Vue基础知识点。 Vue-cli-todolist,是一个用vue-cli3工具初始化项目...

weixin_30546933的博客 600

JumpServer未授权访问漏洞 CVE-2023-42442

JumpServer 是全球首款完全开源的堡垒机, 使用GNU GPL v2.0 开源协议, 是符合4A 的专业运维审计系统。 JumpServer 使用Python / Django 进行开发。2021年1月15日,阿里云应急响应中心监控到开源堡垒机JumpServer发布更新,修复了一处远程命令执行漏洞。由于 JumpServer 某些接口未做授权限制,攻击者可构造恶意请求获取到日志文件获取敏感信息,或者执行相关API操作控制其中所有机器。

holyxp的博客 1424

YOLOv8改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点

本文记录的是利用模块优化的目标检测网络模型。的目的是在不出现过参数化的情况下有效地增加卷积的感受野,从而解决了在感受野扩展中的参数膨胀问题。本文将其加入到深度可分离卷积中,有效降低模型参数量和计算量,并二次创新C2f,使模块更好地捕捉低频特征,增强网络性能。Wavelet Convolutions for Large Receptive Fields小波卷积及其改进的实现代码如下: 四、创新模块 4.1 改进点1⭐ 模块改进方法:加入(第五节讲解添加步骤)。添加后如下:模块改进方法:基于的(第五节讲解添加

Limiiiing的博客 1092

初探Vuex,使用Vue-cli,Vuex实现一个简单的TodoList

1.vue-cli创建工程的两种方法 全局安装vue-cli工具的命令:npm install -g @vue/cli,-g表示全局安装。 创建vue工程:首先需要进入到创建工程的目录 创建vue工程命令:vue create 项目名(小写字母、可以有横线和下划线) 回车后,会出现vue-cli的一些选项,如果使用default就会创建默认的工程,第二个则是手动 当我们选择了默认的cli配置后等待安装 2.组件化思想 3.vue-router介绍 4.vuex介绍 state : 组件的状态(需要管理的或

kaiakai111的博客 1200

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

使用 Vue 开发 todolist

问题描述 npm does not support Node.js vxx.xx.xx 查看版本 node -v npm -v 解决办法 npm 的版本较低,更新 npm: curl https://www.npmjs.com/install.sh | sudo sh

我有两颗糖 751

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VueJS2 todoList Demo

VueJS2 todoList Demo最近在学习VueJS,先看2.0的API,目前看完了基础部分,搭建Demo练习一下工具: sublime, vue-cli 环境: 按教程,通过cnpm安装; app.vue代码如下:<template> <div id="app"> <h1 v-text="title"></h1> <input type="text" v-mo

Carl·铭的博客 372

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

使用VueCli制作TodoList案例

案例展示 1650611778687 准备工作 利用Vue框架搭配Html+Css做出简易版的TodoList案例,在没有引用Vuex的相关知识下,实现原生版的框架结构搭建,首先搭配好整体的网页布局 如上图我们可以将整体布局分为四大部分 MyHeader.vue MyList.vue MyItem.vue MyFooter.vue 首先,为了读者能更好的划清组件结构,我在下面对组件结构进行了标识 MyHeader.vue 组件部分 MyItem.vue 和 MyLis...

Scavenger的博客 977

Vue-cli的使用

*自动在data中找list,this.list相当于this.$data.list*//*data是一个函数,函数返回值是数据*/

weixin_45980065的博客 704

php task todolist,使用Vue完成一个简单的todolist的方法

看了两天的Vue,还是上手写一个简单的todolist更实用(文末有彩蛋)。一、使用vue-cli脚手架快速搭建一个框架利用vue-cli来自动生成我们项目的前端目录及文件,方法:npm install -g vue-clivue init webpack my-projectcd my-projectnpm installnpm run dev这样我们的一个基于webpack的vue项目目录就可...

weixin_33603802的博客 285

vue-基础项目-todolist实现

vue-基础项目-todolist实现 源代码地址:https://github.com/Lituzi/vue-miniProject-ToDoList 实现功能 在文本框输入后按enter添加待办事项 添加后显示在待办事项中 完成后勾选check框,从待办事项中移除,显示在已完成中 待办事项和已完成的计数功能 删除单条待办事项 按键clear清除所有事项 保存在本地localStorage中 vue实现 创建vue-cli脚手架项目 步骤 npm install --global vue-cli

qq_33094147的博客 4672

vue-cli实现TodoList案例,适合新手入门

案例介绍 TodoList是作为新手入门的最好训练案例,在该案例中包含了很多Vue的知识点,例如: 条件渲染、列表渲染指令 表单数据绑定 事件处理和事件修饰符 计算属性 生命周期钩子函数 localStorage本地存储 自定义指令 除了上面的知识点外,最重要的就是熟悉Vue的开发流程。所以,多练习一下TodoList案例对新手来说是最好的入门案例了,下面给大家分享一下源码和演示效果。 案例要求 使用 vue + localStorage 完成案例; 输入任务,按回车添加任务; 双击编辑任务; 编辑完

柯晓楠 1686

【Vue学习】Vue-cli3构建项目之TodoList效果vue组件化实现

我这里用到是Vue-cli3来构建项目。components文件夹用来存放vue组件,新建的vue组件 todolist.vue文件就是放在这里,根目录下的App.vue是根组件。 App.vue <template> <div id="app" > <h1>TodoList</h1> <todolist></...

没有感情的代码机器的博客 441

实现一个简单的 TodoList 应用以学习 Vue 基础

在这个 TodoList 应用中,用户可以添加待办事项、标记完成状态以及删除待办事项。为了实现这一点,我们将创建一个简单的 Vue 组件,并逐步添加功能。通过这个项目,我们体验了 Vue.js 的基本使用,包括组件的创建、响应式属性的使用、事件处理以及计算属性的应用。将待办事项存储到 LocalStorage 中,以便在页面刷新后保持数据。添加编辑功能,让用户能够编辑已添加的事项。设计更复杂的样式,增强视觉效果。

有我更精彩的博客 1012
上一篇: vue cli (脚手架) 的安装(mac)
下一篇: Vue cli 全局样式与局部样式
purple_lumpy
博客等级 码龄10年 73粉丝 340原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值