位置: IT常识 - 正文

Vue3+TS+Vite 入门指南(vue3 ts知乎专栏)

编辑:rootadmin
Vue3+TS+Vite 入门指南

推荐整理分享Vue3+TS+Vite 入门指南(vue3 ts知乎专栏),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3+ts知乎,vue3 + ts,vue3 v-slot,vue3 ts知乎专栏,vue3 v-slot,vue3.0 ts,vue3+ts知乎,vue3 + ts,内容如对您有帮助,希望把文章链接给更多的朋友!

最近尝试上手 Vue3+TS+Vite,对比起 Vue2 有些不适应,但还是真香~

上手前先说下 Vue3 的一些变化吧~

Vue3 的变化

Vue3 带来的变化主要有以下几个方面:

使用层面

对比起 Vue2 启动速度快很多,新项目从 1s 升级到不到 500msvite.config.ts 配置文件修改后无需重启服务就能更新

代码层面

函数式编程,方便组合逻辑,如mixin容易命名冲突,数据来源不清晰新增 ref,reative API定义变量更好的 ts 支持组件文件中 template 模板内无需用根节点标签包着组件元素

底层设计

双向数据绑定从 defineProperty for in 循环变量改成 proxy。defineProperty 是改变原对象属性标签;而 proxy 未改变原对象,而是产生新的代理对象,js 引擎更喜欢稳定的对象重新定义 vdom 对比思路:区分动静态 dom,只对比动态数据 dom,用block 标记动态标签内部的静态标签使用最长递增子序列算法,找到所有不需要移动的元素compile 编译优化,把大量计算放在 node 层,最后浏览器只需执行最少的代码

底层设计层面的改变决定了 vue3 比 vue2 更快

下面介绍上手步骤~ (官网链接)

创建项目

使用 vite 命令创建初始项目

# npm 6.xnpm create vite@latest my-vue-app --template vue# npm 7+, extra double-dash is needed:npm create vite@latest my-vue-app -- --template vuecd my-vue-appnpm installnpm run devVite 配置

功能一致的配置大多跟 vue-cli 配置大同小异,不过多赘述

resolve

resolve.alias:当使用文件系统路径的别名时,请始终使用绝对路径。相对路径的别名值会原封不动地被使用,因此无法被正常解析。

/* vite.config.ts */resolve: { //文件系统路径的别名, 绝对路径 alias: { "@": path.resolve(__dirname, "src"), }}

sass配置

Vue3+TS+Vite 入门指南(vue3 ts知乎专栏)

安装sass依赖和配置 vite.config.ts 预定义全局变量

npm i sass -D/* vite.config.ts */css: { preprocessorOptions: { scss: { additionalData: '@import "./src/assets/scss/var.scss";' } }}

开启服务配置

开启 http 服务

/* vite.config.ts */server:{ host: 'dev.moon.cn', port: 3000}

开启 https 服务

/* vite.config.ts */let httpsConfig = { key: fs.readFileSync("C:/Users/ca/wps.cn/_wildcard.wps.cn+3-key.pem"), cert: fs.readFileSync("C:/Users/ca/wps.cn/_wildcard.wps.cn+3.pem")};server:{ https: httpsConfig, host: 'dev.moon.cn', port: 443, open: true}预构建依赖优化

默认情况下,Vite 会抓取你的 index.html 来检测需要预构建的依赖项。如果指定了 build.rollupOptions.input,Vite 将转而去抓取这些入口点。

optimizeDeps.include

默认情况下,不在 node_modules 中的,链接的包不会被预构建。使用此选项可强制预构建链接的包。

/* vite.config.ts */optimizeDeps: { include: ['axios'],},

optimizeDeps.exclude

在预构建中强制排除的依赖项。

eslint 配置

vue3 和 ts 的 eslint 配置需另外自行配置,除了需配置 eslint 规则外还需调整 vite 的相关配置,感兴趣的话可以看看我另一篇文章(内附配置解析),或者直接看完整源码,这里不做赘述。

TypeScript

TypeScript 是添加了类型系统的 JavaScript,适用于任何规模的项目,在编译阶段进行类型检查。

基础知识可直接看中文文档,英文比较好的小伙伴可以直接看官方文档,这里不做赘述,这里分享一些值得说的地方

类型/接口/泛型

类型:类型(type)不是定义一个新类型,而是一个类型别名,使类型更具体化

接口:接口(interface)则是描述一个对象的形状,对值所具有的结构进行类型检查。接口的作用类似于抽象类,不同点在于接口中的所有方法和属性都是没有实值的,换句话说接口中的所有方法都是抽象方法。接口主要负责定义一个类的结构,接口可以去限制一个对象的接口,对象只有包含接口中定义的所有属性和方法时才能匹配接口。同时,可以让一个类去实现接口,实现接口时类中要保护接口中的所有属性。

泛型:支持多种数据结构,有函数泛型,类泛型,接口泛型等。

你可能想问什么时候用类型,什么时候用接口?Typescript团队的建议是

可以使用接口就尽量使用接口,因为接口更灵活,更容易处理

很多时候 interface 和 type 是相同的,但有一个明显区别在于 interface 可以重复定义,类型注解会累加,而 type 重复定义会报错

类型
本文链接地址:https://www.jiuchutong.com/zhishi/290168.html 转载请保留说明!

上一篇:格雷厄姆海峡的阿德利企鹅,南极洲南极半岛 (© Nick Garbutt/Minden Pictures)(格雷厄姆岛)

下一篇:初雪与最后的秋色相会,日本 (© SpontaneousPictures/iStock/Getty Images Plus)(初雪与最后的秋天的区别)

  • 网易云音乐账号在哪可以绑定(网易云音乐账号可以几个人用)

    网易云音乐账号在哪可以绑定(网易云音乐账号可以几个人用)

  • 小米10至尊纪念版支持防水吗(小米10至尊纪念版)

    小米10至尊纪念版支持防水吗(小米10至尊纪念版)

  • 小米九pro什么时候上市(小米九pro什么时候出的)

    小米九pro什么时候上市(小米九pro什么时候出的)

  • 抖音注销一个星期了怎么还在(抖音注销一个星期了可以重新注册了吗)

    抖音注销一个星期了怎么还在(抖音注销一个星期了可以重新注册了吗)

  • 苹果x屏幕摔出白线(苹果x屏幕摔出黑色块修多少钱)

    苹果x屏幕摔出白线(苹果x屏幕摔出黑色块修多少钱)

  • 三星手机下载微信解析程序包出现问题(三星手机下载微信找不到了)

    三星手机下载微信解析程序包出现问题(三星手机下载微信找不到了)

  • chainchat是什么东西(chain中文是什么意思)

    chainchat是什么东西(chain中文是什么意思)

  • 打印机不能初始化怎么回事(打印机不能初始打印)

    打印机不能初始化怎么回事(打印机不能初始打印)

  • 苹果手机会不会被别人监控(苹果手机会不会爆炸)

    苹果手机会不会被别人监控(苹果手机会不会爆炸)

  • u盘2.0 3.0 3.1是什么意思(u盘2.0和3.0啥意思)

    u盘2.0 3.0 3.1是什么意思(u盘2.0和3.0啥意思)

  • 网上买的手机可以去实体店售后吗(网上买的手机可以去实体店贴膜吗)

    网上买的手机可以去实体店售后吗(网上买的手机可以去实体店贴膜吗)

  • 小米平板4plus能扩展内存吗(小米平板4plus能玩吃鸡吗)

    小米平板4plus能扩展内存吗(小米平板4plus能玩吃鸡吗)

  • 微信解封一年可以解几次(微信解封一年可以几次)

    微信解封一年可以解几次(微信解封一年可以几次)

  • p30关机也是快充吗(p30pro关机才能充电)

    p30关机也是快充吗(p30pro关机才能充电)

  • 存储器分为哪两大类(存储器分为哪两个部分)

    存储器分为哪两大类(存储器分为哪两个部分)

  • 华为备忘录删除了怎么恢复(华为备忘录删除的内容如何恢复)

    华为备忘录删除了怎么恢复(华为备忘录删除的内容如何恢复)

  • ios13怎么改微信提示音(ios13.6怎么改微信提示音)

    ios13怎么改微信提示音(ios13.6怎么改微信提示音)

  • xp任务栏如何恢复默认

    xp任务栏如何恢复默认

  • 苹果键盘锁在哪里设置(苹果键盘锁在哪里)

    苹果键盘锁在哪里设置(苹果键盘锁在哪里)

  • 华为p30左上角显示hd(华为p30左上角显示图标)

    华为p30左上角显示hd(华为p30左上角显示图标)

  • 华为p30pro怎么关闭程序(华为p30pro怎么关闭锁屏壁纸)

    华为p30pro怎么关闭程序(华为p30pro怎么关闭锁屏壁纸)

  • 安卓手机忘记密码(安卓手机忘记密码了怎样重置手机)

    安卓手机忘记密码(安卓手机忘记密码了怎样重置手机)

  • 如何在Win11中添加无线打印机?Win11中添加无线打印机操作方法(windows 11怎么用)

    如何在Win11中添加无线打印机?Win11中添加无线打印机操作方法(windows 11怎么用)

  • 申请渠道门户网站是什么意思
  • 企业支付的租金在汇算时可一次性税前扣除
  • 制造业税负率怎么计算
  • 融资租赁租出的固定资产需要计提折旧吗
  • 劳务费发票可以抵扣进项税吗
  • 资产负债表怎么下载
  • 2021成品油增值税计算
  • 报税时资产总额怎么填
  • 小规模印花税可以零申报吗
  • 个人微信转账可以认定劳动关系吗
  • 往来差异一般原因有哪些
  • 个人所得税减除费用6万元什么意思
  • 民间非营利机构加班费记什么科目
  • 利息收入需要交印花税吗
  • 火车票抵扣进项税怎么计算
  • 税务局不给注销税务
  • 出口退税新旧申报
  • 未分配利润借方表示增加还是减少
  • 以合并方式成立的新企业,新启用
  • 有限合伙企业分红避税
  • 承兑汇票贴现计算公式
  • 法人 持股
  • 事业单位收个人部分社保怎么入账
  • 免征增值税和营业税政策
  • 出纳去银行
  • 计提本月应缴纳增值税
  • 税务未抄报
  • 打印机第一行未赋码
  • 开票信息没有电话号码可以吗
  • 用于研发的材料进项能否加计抵扣1%
  • 发票已勾选未确认
  • 完税凭证号是几位数
  • 工程出差主要是做什么
  • 电脑怎样进入cmos设置
  • win10 上帝模式
  • 股东可以随时退出吗
  • 房地产企业增值税怎么计算
  • 公司员工的社保怎么查询
  • ccmexec.exe是什么程序
  • 预付采购材料货款
  • 企业租赁发票税率是多少2023年
  • 经营特许权
  • vuex存储用户信息
  • 跨区域涉税事项报验管理编号怎么填
  • 公司出售房子怎么交税
  • 公司股票买卖账务处理
  • mongodb索引存储方式
  • 个税累计预扣法导致税交多了
  • mysql5.6设置密码
  • 当月开票可以当月勾选吗
  • 代扣代缴境外增值税怎么申报
  • 怎么计提固定资产的累计折旧
  • 公司在建厂房图片大全
  • 装修费一定要摊销吗
  • 税务自查补缴税款怎么办
  • 预收账款计入应收账款怎么弄
  • 开具红字增值税专用发票信息表需要盖章吗
  • 工程项目必须购买保险吗
  • 小规模纳税人财务报表季报怎么填
  • 其他债权投资有没有减值准备
  • 代收开票收入怎么做账
  • 苹果电脑mac系统怎么用
  • win7任务栏快捷启动如何设置
  • windos8怎么样
  • linux在服务器的份额
  • linux使用vi编辑文件
  • win7如何使用usb无线网卡
  • 批处理常用命令总结
  • perl 获取数据库查询结果
  • 不通过肾门的结构都有什么
  • 如何获得select选中的值
  • 在dos下运行
  • pygame实例
  • jquery 图片
  • 国家税务局福建省电子税务
  • 特斯拉绿色牌照
  • 征管基础平台app
  • 什么叫售后回租赁合同
  • 教育用地性质可以更改么
  • 宾馆如何申请税务发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设