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

第7章:TS快速入门和前端项目初始化

TS快速入门基本类型

TS又叫TypeScript:在代码程序运行前就会进行代码检查,减少运行时的报错。其代码的结构清晰明了,可以提前定义好变量的类型,以便后期代码的维护。

环境搭建:

首先我们需要安装一个node环境,然后初始化环境

yarn install -y

其要安装ts插件

yarn add typescript -D

创建文件ts.ts,并写入一些代码

然后将ts编译为js

npx tsc ts.ts

但是这时候的变量我们没有写ts类型的代码,比如let a:num =1执行node ts.ts时候发现报错。

所以这时候我们需要用到插件让我们的node可以执行ts的代码。

node执行ts文件

yarn global add ts-node

然后使用

npx ts-node ts.ts

基本类型的声明和使用:

  1. 指定ts里面变量的类型;
  2. 指定了类型的变量,只能存当前类型的值,当赋值其他类型的值时,在编译时就会报错;
  3. 当变量进行声明和赋值时,可以省略类型声明的操作。

不同类型的声明方式:

  1. number
let age:number=18
  1. boolean
let isShuai:boolean=false
  1. string
let name:string='laoshi'
  1. any
let hh:any = 18
hh='xiaoshishi'
hh=true
  1. void
let hh:void=undefined
  1. array
  2. 联合类型

创建项目和git管理代码

我们选用的是gitee为远程仓库:https://gitee.com/

在本地创建项目study-frontend-pc,然后连接到远程仓库

//创建远程仓库git remote add origin git@gitee.com:guslegend-xxx//连接远程仓库
git remote set-url origin git@gitee.com:guslegend-xxx

提升开发效率的插件使用

自动引入插件unplugin-auto-import

在nuxt框架中已经封装了自动引入vue的插件,如果是vue3框架的项目需要自己引入

yarn install unplugin-auto-import -D
// vite.config.ts
import AutoImport from "unplugin-auto-import/vite"
export default defineConfig({
plugins: [
vue(),
AutoImport({
imports: ['vue'],
dts: 'src/auto-import.d.ts'}),]
})

这两个vue3的指令可以自动引入,不需要写import ref from "vue"

响应式转换

响应式ref省略.value处理数据,简化代码。

可以参考文档:reactivitytransform改变,https://vue-macros.dev/zh-CN/features/reactivity-transform.html

按以下配置

import ReactivityTransform from '@vue-macros/reactivity-transform/vite'export default defineNuxtConfig({compatibilityDate: '2025-07-15',devtools: { enabled: true },vite: {plugins: [ReactivityTransform() ]},
})

发现不需要mm.value都可以实现

引入第三方组件库ant-design-vue的按需引入

// ant-design-vue组件库
yarn add ant-design-vue@3.2.13
// 自动引入插件
yarn add unplugin-vue-components@0.22.8 
import ReactivityTransform from '@vue-macros/reactivity-transform/vite'
// @ts-ignore
import Components from 'unplugin-vue-components/vite';
// @ts-ignore
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';export default defineNuxtConfig({compatibilityDate: '2025-07-15',devtools: { enabled: true },vite: {plugins: [ReactivityTransform() ,Components({resolvers: [AntDesignVueResolver()],}),]},
})

@ts-ignore表示忽略ts报错

<a-button type="primary">按钮</a-button>写入该代码查看是否生效。

css框架-Unocss认识

常见的CSS框架

  • windicss:https://cn.windicss.org/
  • tailwindcss:https://tailwindcss.com/
  • tachyons:https://tachyons.io/
  • unocss:https://gitee.com/mirrors/unocss

Unocss

作者:vue、vite核心开发成员 Anthony Fu

https://zhuanlan.zhihu.com/p/425814828?utm_medium=social&utm_oi=31225867665408

定义:Unocss 是一个引擎,而非一款框架,因为它并未提供核心工具类,所有功能可以通过预设和内联配置提供

优点:直观定制简单;无值的属性化模式;更好的兼容其他的组件库样式 ;带来灵活性的同时兼顾了性能


 

Unocss配置

nuxt4配置:https://github.com/unocss/unocss/tree/main/packages/nuxt

写法地址:https://uno.antfu.me/

安装依赖

yarn add -D @unocss/nuxt@0.45.29

配置

// nuxt.config.ts
export default defineNuxtConfig({modules: ['@unocss/nuxt'],unocss: {uno: true,          //激活unocssattributify: true,  //激活属性化模式shortcuts: [        //自定义快捷方式{ flexc: 'flex items-center justify-center' },{ flexb: 'flex items-center justify-between' },{ btn: 'rounded-5px text-center cursor-pointer select-none' },{ 'text-btn': 'text-center cursor-pointer select-none' },],rules: [            //自定义规则[/^truncate-(\d+)$/,([, d]) => ({overflow: 'hidden',display: '-webkit-box','text-overflow': 'ellipsis','-webkit-line-clamp': d,'-webkit-box-orient': 'vertical',}),],[/^center-text-(\d+)$/,([, d]) => ({height: `${d}px`,'align-items': 'center','line-height': `${Number(d) - 2}px`,}),],[/^wh-(\d+)$/,([, d]) => ({width: `${d}px`,height: `${d}px`,}),],],},
});

安装插件

状态管理插件Pinia

Pinia

  • 使用直观,编写store更加容易
  • 完整的 TypeScript 支持
  • Pinia的体积极小,包体积仅为约1kb
  • 抛弃了Vuex中的Mutation,使用action支持同步和异步
  • 官方地址:https://pinia.web3doc.top/

安装插件

yarn add pinia@2.0.22yarn add -D pinia-plugin-persistedstate@2.2.0 @pinia/nuxt@0.4.2

组合式API语法定义状态:不适用配置进行定义状态,其需要配置state,action,getters不直观,而且代码比较复杂

// nuxt.config.ts
modules: ['@pinia/nuxt']
//composables\user.ts
export const useUser = defineStore('user', () => {let count = ref(1);const add = () => {count.value++;};const multiplyCount = computed(() => count.value * 2);return {count,add,multiplyCount,};},//持久化储存{ persist: true }                              
);

持久化存储设置

http://www.dtcms.com/a/422556.html

相关文章:

  • 合肥 做网站的深圳办公室装修设计公司
  • Android实现RecyclerView粘性头部效果,模拟微信账单列表的月份标题平移
  • 建三江建设局网站网站建设自我评价怎么写比较好
  • 华为Fit4手表:个性化表盘,让生活更有温度
  • Spring Boot - 从PF4J到SBP:深入解析Java插件化架构的演进与实践
  • 河南做网站企起做平面什么网站的素材不侵权
  • 哪个网站做ppt模板赚钱手机棋牌游戏平台
  • 鸿蒙app开发中 拿到json文件数据进行动画的播放
  • 第三章 鸽巢原理
  • 智慧政务——解读57页清华大学:DeepSeek政务场景应用与解决方案【附全文阅读】
  • Transformer模型:深度解析自然语言处理的革命性架构
  • 声网AI逐字拆解问题,30天重塑口语清晰表达
  • Java异常简介
  • VSCode Web版本安装
  • 实用软件 | 实时监控andriod设备硬件状态-devcheck
  • 非关系型数据库(NoSQL):特性、类型与应用指南​
  • 性能革命的底层逻辑:深入理解 Spring Cloud Gateway 的 Reactor 核心
  • 2025 年 AI+BI 趋势下,Wyn 商业智能软件如何重构企业决策效率?
  • 网站开发合同印花税公司网站建设重点内容
  • CMake cmake_parse_arguments
  • 4、存储系统架构 - 从机械到闪存的速度革命
  • 淘宝店铺全量商品接口深度开发:从分页优化到数据完整性保障
  • 视频MixformerV2 onnx导出
  • winfrom 的 BindingSource ,ist<T> + LINQ,DataTable + DataView 自动刷新机制 优势劣势
  • Spring Statemachine 架构详解
  • 做网站大概费用给漫画网站做推广
  • Hadoop RPC深度解析:分布式通信的核心机制
  • 提升开发效率的RPC系统!
  • 微信小程序入门学习教程,从入门到精通,微信小程序页面交互 —— 知识点详解与案例实现(3)
  • 高端品牌网站建设电商网站设计常州的平台公司