当前位置: 首页 > news >正文

V3+TS(基础知识详解)

Vue 3 与 TypeScript 的结合为开发者提供了一种强大且类型安全的开发体验。Vue 3 是 Vue.js 的最新版本,它带来了许多改进和新特性,如 Composition API、更好的 TypeScript 支持、更小的包体积等。而 TypeScript 是一种 JavaScript 的超集,它添加了静态类型检查和一些新的语法特性,使得代码更加健壮和易于维护。

以下是一些关于如何在 Vue 3 中使用 TypeScript 的基本步骤和注意事项:

1.安装必要的依赖

首先,确保你已经安装了 Vue CLI。然后,创建一个新的 Vue 3 项目并添加 TypeScript 支持:

vue create my-vue3-ts-app  
# 在创建过程中,选择手动选择特性,并确保勾选了 TypeScript 和 Vue 3

或者使用vite创建项目:

## 创建工程
npm init vite-app vue3_test-vite
## 进入工程目录
cd vue3_test-vite
## 安装依赖
npm install
## 运行
npm run dev

   vite的优势:

  • 开发环境中,无需打包操作,可快速的冷启动。

  • 轻量快速的热重载(HMR)。

  • 真正的按需编译,不再等待整个应用编译完成。

   2. 分析文件目录

    2.1  main.js

// 引入的不再是Vue构造函数了,引入的是一个名为createApp的工厂函数
import { createApp } from 'vue'
import App from './App.vue'

// 创建应用实例对象——app(类似于之前Vue2中的vm,但app比vm更“轻”)
const app = createApp(App)
console.log(app)
// 挂载
app.mount('#app')

  2.2  App.vue

<template>
	<!-- Vue3组件中的模板结构可以没有根标签 -->
	<img alt="Vue logo" src="./assets/logo.png">
	<HelloWorld msg="Welcome to Your Vue.js App"/>
</template>

 3.示例

   3.1 编写组件

在 Vue 3 中,你可以使用 Composition API 来组织你的组件逻辑。结合 TypeScript,你可以为响应式状态、计算属性等定义明确的类型。

例如,一个简单的计数器组件可能如下所示:

<template>  
  <div>  
    <p>Count: {{ count }}</p>  
    <button @click="increment">Increment</button>  
  </div>  
</template>  
  
<script lang="ts">  
import { defineComponent, ref } from 'vue';  
  
export default defineComponent({  
  setup() {  
    const count = ref(0);  
    const increment = () => {  
      count.value++;  
    };  
      
    return {  
      count,  
      increment,  
    };  
  },  
});  
</script>

    3.2  使用 TypeScript 进行类型检查

TypeScript 的主要优势之一是它的类型系统。你可以为 props、emits、组件选项等定义类型,以确保代码的正确性和一致性。

例如,为 props 定义类型:

<script lang="ts">  
import { defineComponent, PropType } from 'vue';  
  
interface User {  
  name: string;  
  age: number;  
}  
  
export default defineComponent({  
  props: {  
    user: {  
      type: Object as PropType<User>,  
      required: true,  
    },  
  },  
  // ...  
});  
</script>

 

相关文章:

  • Golang学习系列1-pprof性能调优
  • TypeScript基础知识
  • dm8 备份与恢复
  • 世优科技上榜2024年度《中国虚拟数字人影响力指数报告》
  • 如何从vue项目界面上看出来node.js版本
  • 练习 16 Web [极客大挑战 2019]LoveSQL
  • SpringBoot3整合RabbitMQ之一_消息生产者与消息消费者服务搭建
  • Vue之列表渲染
  • 【虚拟机】Vmware虚拟机桥接 Destination Host Unreachable 问题解决
  • 前端三剑客 —— CSS (第六节)
  • 浅谈HTTP
  • 用html写一个爱心
  • Unix 网络编程, Socket 以及bind(), listen(), accept(), connect(), read()write()五大函数简介
  • Linux第4课 Linux的基本操作
  • windows渗透信息收集
  • 【精品教程】护网HVV实战教程资料合集(持续更新,共20节)
  • Go语言时间编程
  • Android Studio 通过 WIFI 调试手机 app
  • CAD Plant3D 2024 下载地址及安装教程
  • 设计模式之建造者模式:灵活可扩展的对象创建过程
  • 深观察丨从“不建议将导师挂名为第一作者”说开去
  • 4月制造业PMI为49%,比上月下降1.5个百分点
  • 青海省林业和草原局副局长旦增主动投案,正接受审查调查
  • 这座“蚌埠住了”的城市不仅会接流量,也在努力成为文旅实力派
  • 直播电商行业代表呼吁:携手并肩伸出援手助力外贸企业攻坚克难
  • “杭州六小龙”的招聘迷局