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>




相关文章
|
18天前
|
缓存 JavaScript
|
17天前
|
缓存 JavaScript 前端开发
Vue.js计算属性:实现数据驱动的利器
Vue.js计算属性:实现数据驱动的利器
|
10天前
|
JavaScript 前端开发
Vue : 监视属性
Vue : 监视属性
9 0
|
10天前
|
缓存 JavaScript
Vue: 事件修饰符, 键盘事件, 鼠标事件,计算属性
Vue: 事件修饰符, 键盘事件, 鼠标事件,计算属性
27 2
|
18天前
|
缓存 JavaScript C++
浅谈Vue.js的计算属性computed
浅谈Vue.js的计算属性computed
11 0
|
18天前
|
JavaScript 前端开发 容器
Vue 3 中 <transition-group> 组件报错的非 props 属性传递问题
Vue 3 中 <transition-group> 组件报错的非 props 属性传递问题
29 1
|
18天前
|
移动开发 前端开发
ruoyi-nbcio-plus基于vue3的flowable扩展属性的升级修改
ruoyi-nbcio-plus基于vue3的flowable扩展属性的升级修改
23 0
|
18天前
|
缓存 JavaScript 开发者
什么是vue的计算属性?为什么使用?计算属性和方法有什么区别?怎样选择
什么是vue的计算属性?为什么使用?计算属性和方法有什么区别?怎样选择
14 0
|
18天前
|
缓存 JavaScript
在 Vue 组件中使用计算属性和侦听器来响应路由变化
【5月更文挑战第8天】Vue Router 中,计算属性和侦听器常用于根据路由变化更新组件状态。计算属性缓存依赖,当路由参数改变时自动更新,如示例中的 `userId`。侦听器则监听 `$route` 变化,执行相应操作,例如在 `currentUserId` 示例中响应 `userId` 更新。计算属性适合简单变化,而异步操作或复杂场景可选用侦听器。Vue 3 中,`watchEffect` 减少了部分侦听场景的复杂性。总之,它们用于组件内部响应路由变化,而非直接处理路由逻辑。
20 4
|
18天前
|
JavaScript 开发者 索引
【亮剑】探讨了在TypeScript中为对象动态添加属性的三种方式
【4月更文挑战第30天】本文探讨了在TypeScript中为对象动态添加属性的三种方式:1) 使用索引签名允许添加任意属性,如`[key: string]: any`;2) 通过接口和类型别名提供编译时类型检查,例如`interface Person { name: string; age: number; }`;3) 利用类创建具有属性的对象,如`class Person { name: string; age: number; }`。每种方法有其适用场景,开发者可根据需求选择。