Vue3-TypeScript-事件-计算属性用法

简介: 1.书接上文vue3-ts核心语法2.这个主要是 事件写法 和 计算属性的用法

1. 前言


1.书接上文vue3-ts核心语法

2.这个主要是 事件写法 和 计算属性的用法


2. 需求


1.类似一个 toDoList

2.根据输入的内容来动态列表显示

3.添加成功总数 通过计算属性来得到 数组总数


%H7FGDUWGXQ(1$QJ1VQLI6K.png


3. 模板


1.首先为了更多的练习,这里我就不使用v-model


<h1>函数</h1>
    <p><input type="text" @keydown.enter="addCharacter" /></p>
    <hr />



4. 事件


1.事件在TS里面也是直接写的,

2.和属性的区别就在于有没有()了

4.1 事件写法

直接在组件里面写


addCharacter(e: Event) {}


4.2 直接写Event的问题

1.首先代码提示不够精准

2.例如 e.altKey  e.keyCode 都没有提示


J3SA{4%6AK{[I]KBWNS3_74.png

4.3 KeyboardEvent

1.因我们是输入框,所以我们很清楚是 键盘事件

2.写的越详细代码提示越详细,写起来越轻松

3.而且如果写错了立刻会有提示,不必等到运行再去测试

4.4 target


e.target

~3~8A85Z)ZMA1(D2L12MFQ9.png


4.4.1 报错分析

1.这个target属于联合类型,

2.有可能为空

3.所有你不能对一个 possibly null/可能为空的对象进访问属性操作

4.null嘛 对象就没有属性了

4.4.2 解决   数据断言  as


const inputE = e.target as HTMLInputElement;

数据断言 用户确定这个变量的类型 可以使用断言,告诉编译器 不用操心了,我知道啥类型

4.5 完整代码


addCharacter(e: KeyboardEvent) {
    const inputE = e.target as HTMLInputElement;
    const character: SelectCharacter = {
      id: this.characters.length + 1,
      name: inputE.value,
      selected: false,
    };
    this.characters.push(character);
    inputE.value = "";
  }


4.6 分析

1.其实这里面的SelectCharacter类型写不写都行.因为已经进行赋值了嘛

2.这里为了省事 直接把这个数组的长度+1作为id了,因为id最好不要从0开始,所以+1了

3.输入框的值赋值给name属性

4.添加到数组

5.清空输入框,形成闭环


5. 计算属性


直接写get 后面跟 名字

名字其实就是属性名

return


// ************* 存取器计算属性的实现
  // 也是有缓存的
  get count() {
    return this.characters.length;
  }


使用计算属性


<h1>特性总数 {{ count }}</h1>




相关文章
|
5月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
782 0
|
JavaScript API
Vue3中的计算属性能否动态修改
【9月更文挑战第5天】Vue3中的计算属性能否动态修改
605 10
|
8月前
|
存储 数据采集 供应链
属性描述符初探——Vue实现数据劫持的基础
属性描述符还有很多内容可以挖掘,比如defineProperty与Proxy的区别,比如vue2与vue3实现数据劫持的方式有什么不同,实现效果有哪些差异等,这篇博文只是入门,以后有时间再深挖。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JavaScript API
vue学习(13)监视属性
vue学习(13)监视属性
185 57
|
缓存 JavaScript
vue学习(12)计算属性
vue学习(12)计算属性
161 60
|
缓存 JavaScript
vue学习(12)计算属性
vue学习(12)计算属性
152 59
|
存储 缓存 JavaScript
如何在大型 Vue 应用中有效地管理计算属性和侦听器
在大型 Vue 应用中,合理管理计算属性和侦听器是优化性能和维护性的关键。本文介绍了如何通过模块化、状态管理和避免冗余计算等方法,有效提升应用的响应性和可维护性。
|
JavaScript API
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
211 1
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
|
缓存 JavaScript 前端开发
vue-day02计算属性,v-bind,v-if,v-for
文章介绍了Vue.js中的计算属性、class与style的绑定、条件渲染和列表渲染的使用。通过示例代码展示了如何使用计算属性简化模板逻辑、如何通过v-bind动态绑定class和style、如何使用v-if进行条件渲染以及如何使用v-for进行列表渲染。这些特性使得Vue.js在构建动态用户界面时更加灵活和强大。
vue-day02计算属性,v-bind,v-if,v-for
|
监控 JavaScript 开发者
在 Vue 中,子组件为何不可以修改父组件传递的 Prop,如果修改了,Vue 是如何监控到属性的修改并给出警告的
在 Vue 中,子组件不能直接修改父组件传递的 Prop,以确保数据流的单向性和可预测性。如果子组件尝试修改 Prop,Vue 会通过响应式系统检测到这一变化,并在控制台发出警告,提示开发者避免这种操作。

热门文章

最新文章