首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第 1 章 准备知识
1.1 前端技术简介
1.2 HTML入门
1.2.1 准备开发工具
1.2.2 HTML中的基础标签
1.3 CSS入门
1.3.1 CSS选择器入门
1.3.2 CSS样式入门
1.4 JavaScript入门
1.4.1 我们为什么需要JavaScript
1.4.2 JavaScript语法简介
1.4.3 从JavaScript到TypeScript
1.5 渐进式开发框架Vue
1.5.1 第一个Vue应用
1.5.2 范例:一个简单的用户登录页面
1.5.3 Vue 3的新特性
1.5.4 我们为什么要使用Vue框架
第 2 章 TypeScript基础
2.1 重新认识TypeScript
2.1.1 安装TypeScript
2.1.2 TypeScript语言版本的HelloWorld程序
2.1.3 使用高级IDE工具
2.2 TypeScript中的基本类型
2.2.1 布尔、数值与字符串
2.2.2 特殊的空值类型
2.2.3 数组与元组
2.3 TypeScript中有关类型的高级内容
2.3.1 枚举类型
2.3.2 枚举的编译原理
2.3.3 any、never与object类型
2.3.4 关于类型断言
2.4 函数的声明和定义
2.4.1 函数的类型
2.4.2 可选参数、默认参数和不定个数参数
2.4.3 函数的重载
第 3 章 TypeScript中的面向对象编程
3.1 理解与应用“类”
3.1.1 类的定义与继承
3.1.2 类的访问权限控制
3.1.3 只读属性与存取器
3.1.4 关于静态属性与抽象类
3.1.5 类的实现原理
3.2 接口的应用
3.2.1 接口的定义
3.2.2 使用接口约定函数和可索引类型
3.2.3 使用接口来约束类
3.2.4 接口的继承
3.3 TypeScript中的类型推断与高级类型
3.3.1 关于类型推断
3.3.2 联合类型与交叉类型
3.3.3 TypeScript的类型区分能力
3.3.4 字面量类型与类型别名
当前位置:
首页>>
技术小册>>
TypeScript和Vue从入门到精通(一)
小册名称:TypeScript和Vue从入门到精通(一)
### 3.1 理解与应用“类” 在TypeScript与Vue的结合使用中,理解并熟练应用“类”(Class)是通往高级编程技能的关键一步。TypeScript作为JavaScript的超集,不仅保留了JavaScript的所有特性,还添加了如类型系统、类、接口等面向对象编程(OOP)的特性,极大地提高了代码的可读性、可维护性和可扩展性。而Vue,作为现代前端框架的代表之一,其组件化的设计思想天然地支持了面向对象的思想。因此,深入理解TypeScript中的类,并将其应用于Vue开发中,对于提升开发效率和项目质量至关重要。 #### 3.1.1 类的基本概念 在面向对象编程中,类(Class)是一种用户定义的类型,它封装了数据(属性)和操作数据的方法(函数)。类是对象的蓝图或模板,通过类可以创建对象实例。每个对象都是类的一个实例,具有类定义的属性和方法。 - **属性(Properties)**:类的变量,用于存储数据。 - **方法(Methods)**:定义在类中的函数,用于执行操作。 #### 3.1.2 TypeScript中的类 TypeScript扩展了JavaScript的类语法,提供了更丰富的类型检查和语法特性。以下是一个简单的TypeScript类的例子: ```typescript class Person { // 属性 name: string; age: number; // 构造函数 constructor(name: string, age: number) { this.name = name; this.age = age; } // 方法 greet(): void { console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`); } } // 创建Person类的实例 const person1 = new Person('Alice', 30); person1.greet(); // 输出: Hello, my name is Alice and I am 30 years old. ``` 在这个例子中,`Person`类包含了两个属性`name`和`age`,一个构造函数用于初始化这些属性,以及一个`greet`方法用于输出问候语。通过`new`关键字,我们可以创建`Person`类的实例,并调用其方法。 #### 3.1.3 类的继承 继承是面向对象编程中的一个核心概念,它允许我们基于一个已存在的类(父类)来定义一个新类(子类),子类会继承父类的属性和方法,并可以添加新的属性或方法,或者覆盖(重写)父类中的方法。 ```typescript class Employee extends Person { position: string; constructor(name: string, age: number, position: string) { super(name, age); // 调用父类的构造函数 this.position = position; } greet(): void { // 重写greet方法 console.log(`Hello, my name is ${this.name}, I am ${this.age} years old, and I work as a ${this.position}.`); } } const employee1 = new Employee('Bob', 28, 'Software Engineer'); employee1.greet(); // 输出: Hello, my name is Bob, I am 28 years old, and I work as a Software Engineer. ``` 在`Employee`类中,我们通过`extends`关键字继承了`Person`类,并添加了新的属性`position`。同时,我们还重写了`greet`方法,以包含职位信息。 #### 3.1.4 类的访问修饰符 TypeScript提供了三种访问修饰符来控制类成员(属性和方法)的访问级别:`public`、`protected`和`private`。 - **public**:成员在任何地方都可以被访问。 - **protected**:成员只能在类内部或子类中访问。 - **private**:成员只能在类内部访问。 ```typescript class User { private id: number; protected name: string; public age: number; constructor(id: number, name: string, age: number) { this.id = id; // 私有属性只能在构造函数或类内部的方法中访问 this.name = name; // 受保护属性可以在子类中访问 this.age = age; } // 其他方法... } class AdminUser extends User { // 可以访问protected成员name,但不能访问private成员id updateName(newName: string): void { this.name = newName; // 合法 // this.id = 123; // 非法,因为id是私有的 } } ``` #### 3.1.5 类在Vue中的应用 在Vue中,虽然Vue组件的语法和类不完全相同,但Vue组件的设计哲学与面向对象编程中的类非常相似。Vue组件封装了模板、逻辑和样式,可以看作是一个特殊的“类”,而组件的实例则对应着这个“类”的实例。 - **组件的属性与方法**:Vue组件的`data`函数返回的对象类似于类的属性,而组件的`methods`对象中的函数则类似于类的方法。 - **组件的继承**:虽然Vue官方没有直接提供组件继承的语法,但我们可以通过混合(Mixins)或高阶组件(HOC)等模式来实现类似的功能。 - **组件的访问修饰符**:Vue组件没有直接的访问修饰符概念,但我们可以通过组件的`props`、`data`、`computed`、`methods`等选项来模拟不同访问级别的成员。 #### 3.1.6 实战:在Vue项目中使用TypeScript类 假设我们正在开发一个用户管理系统,我们可以使用TypeScript类来定义用户模型(UserModel),并在Vue组件中使用它。 ```typescript // UserModel.ts class UserModel { private id: number; public name: string; public age: number; constructor(id: number, name: string, age: number) { this.id = id; this.name = name; this.age = age; } // 其他方法,如验证、序列化等... } // UserInfo.vue <template> <div> <p>User Name: {{ user.name }}</p> <p>Age: {{ user.age }}</p> </div> </template> <script lang="ts"> import { defineComponent, ref } from 'vue'; import { UserModel } from './UserModel'; export default defineComponent({ name: 'UserInfo', setup() { const user = ref(new UserModel(1, 'Charlie', 25)); return { user }; } }); </script> ``` 在这个例子中,我们定义了一个`UserModel`类来表示用户信息,并在Vue组件`UserInfo`中使用它。通过TypeScript的类,我们确保了用户信息的封装性和类型安全,同时保持了Vue组件的简洁和响应性。 #### 结语 通过本章的学习,我们深入理解了TypeScript中类的基本概念、继承、访问修饰符等核心特性,并探讨了如何在Vue项目中应用这些概念。类不仅是面向对象编程的基石,也是构建复杂、可维护前端应用的重要工具。掌握TypeScript中的类,将帮助我们更好地利用Vue的组件化特性,开发出高效、灵活、可扩展的前端应用。
上一篇:
第 3 章 TypeScript中的面向对象编程
下一篇:
3.1.1 类的定义与继承
该分类下的相关小册推荐:
Vue.js从入门到精通(二)
移动端开发指南
vuejs组件实例与底层原理精讲
Vue原理与源码解析
Vue3技术解密
vue项目构建基础入门与实战
VUE组件基础与实战
TypeScript和Vue从入门到精通(五)
Vue源码完全解析
Vue面试指南
Vue.js从入门到精通(一)
TypeScript和Vue从入门到精通(三)