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>




相关文章
|
29天前
|
JavaScript
vue实例的data属性,可以在哪些生命周期中获取到
Vue实例的`data`属性在`beforeCreate`、`created`和`beforeMount`阶段已可访问。此时,虽能使用数据,但事件监听和DOM操作不可行。`beforeCreate`时数据可访问,但未初始化观测和事件;`created`时数据完全可用,但未挂载到DOM;`beforeMount`时仍可访问数据,DOM挂载未开始。
31 3
|
1月前
|
缓存 JavaScript
如何在Vue Router中使用计算属性和侦听器呢
如何在Vue Router中使用计算属性和侦听器呢
24 2
|
1月前
|
缓存 JavaScript 容器
Vue之计算属性(computed)
Vue之计算属性(computed)
|
1月前
|
JavaScript
【Vue3】深入理解Vue中的ref属性
【Vue3】深入理解Vue中的ref属性
|
1月前
|
缓存 JavaScript
解释 Vue 的计算属性和监视属性的区别。
解释 Vue 的计算属性和监视属性的区别。
32 6
|
2月前
|
缓存 JavaScript 数据处理
在Vue中,什么时候使用computed属性,什么时候使用watch监听属性?
在Vue中,什么时候使用computed属性,什么时候使用watch监听属性?
22 0
|
2月前
|
缓存 JavaScript 数据处理
vue的计算属性、侦听属性和方法
vue的计算属性、侦听属性和方法
21 0
|
1月前
|
JavaScript
react+typescript通过window.xxx挂载属性报错的解决方案
react+typescript通过window.xxx挂载属性报错的解决方案
33 0
|
4天前
|
JavaScript
Vue控制是否禁用disabled属性
Vue控制是否禁用disabled属性
10 1
|
17天前
|
缓存 JavaScript API
「Vue3系列」Vue3 计算属性(computed)、监听属性(watch)
在 Vue 3 中,计算属性(Computed Properties)是一种强大的功能,它允许你声明一个依赖于其他响应式数据属性的属性,并且这个属性的值会根据其依赖的数据的变化而自动更新。计算属性是基于它们的依赖关系进行缓存的,只有在它的相关依赖发生改变时才会重新求值。
27 0