位置: 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)(初雪与最后的秋天的区别)

  • 小米hd设置在哪里关闭(小米手机hd模式)

    小米hd设置在哪里关闭(小米手机hd模式)

  • 米家喷墨打印机怎么连接wifi(米家喷墨打印机怎么恢复出厂设置)

    米家喷墨打印机怎么连接wifi(米家喷墨打印机怎么恢复出厂设置)

  • 苹果13锁屏声音在哪设置(苹果13锁屏声音忽大忽小正常吗)

    苹果13锁屏声音在哪设置(苹果13锁屏声音忽大忽小正常吗)

  • 怎么让微信消息不振动(怎么让微信消息在锁屏显示内容)

    怎么让微信消息不振动(怎么让微信消息在锁屏显示内容)

  • qq基友关系有什么用(qq基友关系有什么区别)

    qq基友关系有什么用(qq基友关系有什么区别)

  • iphone11升级了什么(苹果11升级了什么好处)

    iphone11升级了什么(苹果11升级了什么好处)

  • 淘宝一颗黄钻代表几级(淘宝一颗黄钻代购可靠吗)

    淘宝一颗黄钻代表几级(淘宝一颗黄钻代购可靠吗)

  • 微信群管理员能@所有人吗(微信群管理员能撤回超过两分钟的消息吗)

    微信群管理员能@所有人吗(微信群管理员能撤回超过两分钟的消息吗)

  • 小米m2001g7ae是什么型号(小米M2001G7AE是什么型号)

    小米m2001g7ae是什么型号(小米M2001G7AE是什么型号)

  • 抖音头像为什么被自动换掉了(抖音头像为什么变成空白人头了)

    抖音头像为什么被自动换掉了(抖音头像为什么变成空白人头了)

  • iphonehome键按下去有声音(iphonehome键按一下没用要按两下才有用)

    iphonehome键按下去有声音(iphonehome键按一下没用要按两下才有用)

  • so米直播为什么收不到验证码(为什么so米直播下载不了)

    so米直播为什么收不到验证码(为什么so米直播下载不了)

  • 小米mix2s如何启动快充(小米mix2s如何启用广角镜头)

    小米mix2s如何启动快充(小米mix2s如何启用广角镜头)

  • 电脑很久没用开不了机怎么回事(电脑很久没用开机风扇转一下就停)

    电脑很久没用开不了机怎么回事(电脑很久没用开机风扇转一下就停)

  • 华为荣耀20电池多少毫安(华为荣耀20电池寿命怎么查看)

    华为荣耀20电池多少毫安(华为荣耀20电池寿命怎么查看)

  • 打开双4g有什么好处(手机开启双4g网络有什么好处)

    打开双4g有什么好处(手机开启双4g网络有什么好处)

  • 微信过期文件能找回吗(微信过期文件能下载吗)

    微信过期文件能找回吗(微信过期文件能下载吗)

  • deebot扫地机怎么启动(deebot扫地机怎么操作)

    deebot扫地机怎么启动(deebot扫地机怎么操作)

  • 编程语言int是什么意思(程序语言int)

    编程语言int是什么意思(程序语言int)

  • 华为nava是什么意思(nova是什么)

    华为nava是什么意思(nova是什么)

  • 苹果xr拍照怎么虚化背景(苹果xr拍照怎么样)

    苹果xr拍照怎么虚化背景(苹果xr拍照怎么样)

  • 微信能定位找人吗(微信能定位找人吗不让对方知道)

    微信能定位找人吗(微信能定位找人吗不让对方知道)

  • 面对面建群在哪(面对面建群在哪里找)

    面对面建群在哪(面对面建群在哪里找)

  • 如何剪音乐中间的音乐(如何剪音乐中间一段视频)

    如何剪音乐中间的音乐(如何剪音乐中间一段视频)

  • 印花税计提缴纳的会计分录
  • 2019未达起征点免税分录
  • 计提上一年度企业所得税会计分录
  • 劳务成本科目
  • 房地产开发企业资质证书
  • 二手房差额税需要多少钱怎么计算的
  • 保险赔款个人所得税计算
  • 应付账款以前年度挂错
  • 红冲的普票要给对方单位吗
  • 行政单位的存货是什么
  • 查土地补贴到啥单位查明
  • 文化用品利润怎么样
  • 外购机器设备
  • 增值税多交可以在下一期直接抵吗
  • 预收房款属于什么科目
  • 对公账户网银证书有效期多久
  • 出售使用过的固定资产如何开票
  • 资本增值是什么
  • 标准误和标准差的区别和联系
  • 应交税费有余额怎么结转
  • 收到的红字发票报税的时候怎么填
  • 上月未计提税费,本月可以补计提吗
  • 车辆保险费计入车辆的入账成本吗
  • 逆流交易合并报表调整少数损益
  • 高新技术企业研究开发费用加计扣除
  • 无法添加用户和组
  • php for in
  • php表单系统源码
  • 公司开业厂商的宣传文案
  • outpost.exe - outpost是什么进程 有什么用
  • 公司试乘试驾车管理
  • 若依移动端微信登录
  • frameworkscheduled
  • 电力安装公司需要什么资质证书
  • 火山口湖成因
  • php中的函数
  • thinkphpcount查询
  • bootstrap框架的理解
  • 攻防世界web高手题答案
  • ps打不出字怎么回事
  • zarchiver 小米
  • Python中如何定义一个变量
  • 差旅费住宿专票可以抵扣吗
  • 工程施工资产负债表存货计算公式
  • 物流公司的会计好干吗
  • 商业汇票利息账务处理如何做?
  • 实施资本公积金的目的
  • 税盘清卡清不了怎么办
  • 小规模纳税人三减一政策
  • 废品材料回收的会计分录
  • SQLserver2014(ForAlwaysOn)安装图文教程
  • mysql 分片优缺点
  • mysql 表不存在报错信息
  • 两个日期是否一致
  • 专家劳务费可以在手机操作吗
  • 装修行业小规模最高能开几个点的票
  • 社保局退回生育津贴分录摘要
  • 应收账款入账价值包括现金折扣吗
  • 工地会计怎么做账
  • 怎样可以冲销企业微信
  • 网店会计怎么做账
  • 商贸公司主营业务成本会计分录
  • 公司不做账不报税有什么后果?
  • 旅游业小规模纳税人税率是多少
  • 购买服装费用计入什么科目
  • win7系统中如何禁用和启用网络
  • webcamrt.exe - webcamrt 进程是什么意思
  • Remind_XP.exe - Remind_XP是什么进程 有什么用
  • 怎么才能给电脑提速
  • nkvmon.exe - nkvmon是什么进程 有什么用
  • svn下载项目
  • 使用多进程web
  • nodejs使用视频教程
  • 圆形图表分析怎么做
  • unity3d如何导入图片
  • jquery动态添加属性
  • Base64、DES、MD5加密解密原理
  • 无锡地铁时速多少公里
  • 个人开具农产品普通发票
  • 新疆国税网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设