Vue3-TypeScript核心语法

简介: 1.vue3现在其实很多公司已经用到了,今天捋一捋2.默认你已经了解了TS的基础语法,不了解的也可以看之前写的几篇文章3.TS语法-034.TS语法-04

1. 前言


1.vue3现在其实很多公司已经用到了,今天捋一捋

2.默认你已经了解了TS的基础语法,不了解的也可以看之前写的几篇文章

3.TS语法-03

4.TS语法-04


2.  基本环境


就是简单的脚手架配置

vue create 项目名

可以选择默认   这里选择自定义配置  Manually select feature

FSI(N0SX4FM9$8TZXHP{%XH.png

tsv3.png

注意

Use class-style component syntax  yes 选择了 yes


3. 使用TS 方式1 ---脚手架默认的


类似 Home或者about这样的写法

3.1 Home


import { Options, Vue } from 'vue-class-component';
import HelloWorld from '../components/HelloWorld.vue';
@Options({
  components: {
    HelloWorld
  },
})
export default class Home extends Vue {}
</script>


3.2 HelloWorld


@Options({
  props: {
    msg: String,
  },
})
export default class HelloWorld extends Vue {
 msg!: string;
}


3.3 简要分析

  1. 如你所见 props类似之前的data

2.msg!:string

3.组件里面的 data可以像这样直接定义,

4.!的意思是赋值断言

5.去掉报错

G7}P[ED9936DNBVRRVLL$X1.png


6.去掉的话会报错 没有进行初始化赋值7. !就是告诉编译器你不用操心了,将来肯定会有传参的


4. 使用TS 方式2----JSX语法


随意新建个tsx文件 例如yzs.tsx

4.1 tsx 文件内容


import { Options, Vue } from 'vue-class-component';
@Options({
  props: {
    msg: String
  }
})
export default class World extends Vue {
  // ! 赋值断言
  //  去掉的话会报错 没有进行初始化赋值 ! 就是告诉编译器你不用操心了,将来肯定会有传参的
  msg!: string
  render(){
    // 提示强悍
      return <div>{this.msg}</div>
  }
}


4.2 简要分析

  1. tsx后缀的文件可以使用JSX的写法
  2. render写内容会有对应的提示,
    2U]NCPTM2765OS~C{L(8L[9.png

    WW@{UL3621}WLQ9J6Q2TQ5D.png

3.在vue文件中的模板中写可是没有对应的提示的

4.越来越像react了,学起来吧

5.使用的时候也是直接导入/import就行


5. 基本的循环写法


组件里面直接写 参照msg

5.1 data数据


characters:string[] = ["类型注解","编译性的语言"]


5.2 运用


<h1>{{ msg }}</h1>
    <hr />
    <h1>特性列表</h1>
    <ul>
      <li
        v-for="item in characters"
        :key="item"
      >
        {{ item}}
      </li>
    </ul>



6.  类型别名


6.1 类型别名定义


type Character = {
  id: number;
  name: string;
};


6.2 用法


characters:Character[] = [{id:1,name:"类型注解"},{id:2,name:"编译性的语言"}]


6.3 使用的地方也需要更改


<li
        v-for="item in characters"
        :key="item.id"
      >
        {{ item.name }}
      </li>

不足之处就是 数据类型改了;使用的地方并不会进行报错


7. 交叉类型


7.1 交叉类型定义


type Character = {
  id: number;
  name: string;
};
type SelectCharacter = Character & { selected: boolean }


7.2  变量


characters: SelectCharacter[] = [
    { id: 1, name: "类型注解", selected: true },
    { id: 2, name: "编译性的语言", selected: false },
  ];


7.3 使用


<li
        v-for="item in characters"
        :key="item.id"
        :class="{ selected: item.selected }"
      >
        {{ item.name }}
      </li>


7.4 样式


.selected {
  background-color: orange;
  color: #fff;
}



8. 图示


}0[DCF9@LI1ID{PUQQ2%F(X.png




相关文章
|
7月前
|
XML JavaScript 前端开发
TypeScript 中的“as”语法是什么?
TypeScript 中的“as”语法是什么?
|
7月前
|
JavaScript
详细介绍 TypeScript 中常用的循环语句,包括它们的语法、用法以及一些注意事项
详细介绍 TypeScript 中常用的循环语句,包括它们的语法、用法以及一些注意事项
193 1
|
7月前
|
JavaScript 前端开发 开发者
深入理解ArkTS:Harmony OS 应用开发语言 TypeScript 的基础语法和关键特性
深入理解ArkTS:Harmony OS 应用开发语言 TypeScript 的基础语法和关键特性
649 0
|
2月前
|
JavaScript 前端开发 安全
TypeScript无缝衔接ArkTS:快速入门鸿蒙ArkTS基本语法
【10月更文挑战第12天】TypeScript无缝衔接ArkTS:快速入门鸿蒙ArkTS基本语法
118 0
TypeScript无缝衔接ArkTS:快速入门鸿蒙ArkTS基本语法
|
5月前
|
存储 JavaScript 开发者
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(四)
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(四)
52 0
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(四)
|
5月前
|
JavaScript API 网络架构
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(三)
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(三)
52 0
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(三)
|
5月前
|
JavaScript API
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(二)
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(二)
45 0
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(二)
|
5月前
|
JavaScript API UED
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(五)
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(五)
52 0
|
5月前
|
JavaScript 前端开发 API
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(一)
【Vue3+TypeScript】CRM系统项目搭建之 — 关于 VUE3 语法新变化(一)
56 0
|
7月前
|
JavaScript 编译器 开发者
TypeScript中的“as”语法是什么?
TypeScript中的“as”语法是什么?
40 0