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

  • 掘“第二社会”论坛发帖的三大价值

    掘“第二社会”论坛发帖的三大价值

  • 支付宝拉黑好友对方知道吗(支付宝拉黑好友对方列表还有我吗)

    支付宝拉黑好友对方知道吗(支付宝拉黑好友对方列表还有我吗)

  • tim怎么取消置顶(tim窗口置顶)

    tim怎么取消置顶(tim窗口置顶)

  • 苹果12home键在哪里设置(苹果14手机电源键在哪)

    苹果12home键在哪里设置(苹果14手机电源键在哪)

  • 怎么解决keep闪退的问题(keep总是闪退怎么办重新登录)

    怎么解决keep闪退的问题(keep总是闪退怎么办重新登录)

  • 淘宝88会员优酷用不了(淘宝88会员优酷会员从哪天算)

    淘宝88会员优酷用不了(淘宝88会员优酷会员从哪天算)

  • 华为手机锁屏广告怎么关闭(华为手机锁屏广告滑动解锁)

    华为手机锁屏广告怎么关闭(华为手机锁屏广告滑动解锁)

  • 朋友圈文字为什么不能全部显示(朋友圈文字为什么会折叠起来)

    朋友圈文字为什么不能全部显示(朋友圈文字为什么会折叠起来)

  • 抖音剪映怎么剪辑掉多余片段(抖音剪映怎么剪辑视频教程)

    抖音剪映怎么剪辑掉多余片段(抖音剪映怎么剪辑视频教程)

  • 微信运动捐赠步数是什么意思(微信运动捐赠步数有钱吗)

    微信运动捐赠步数是什么意思(微信运动捐赠步数有钱吗)

  • 360路由器密码重置(360路由器密码重置方法)

    360路由器密码重置(360路由器密码重置方法)

  • 分辨率跟显示器有关系吗(分辨率跟显示器关系大吗)

    分辨率跟显示器有关系吗(分辨率跟显示器关系大吗)

  • 电脑显示屏无视频输入怎么回事(电脑显示屏无视频输入)

    电脑显示屏无视频输入怎么回事(电脑显示屏无视频输入)

  • 电信hd通话收费吗(电信hd怎么收费)

    电信hd通话收费吗(电信hd怎么收费)

  • 快手竞猜押注在哪(快手竞猜押注在哪里)

    快手竞猜押注在哪(快手竞猜押注在哪里)

  • 抖音发视频怎么配文字(抖音发视频怎么赚钱)

    抖音发视频怎么配文字(抖音发视频怎么赚钱)

  • 华为mate20怎么开启NFC(华为mate20怎么开启高清通话)

    华为mate20怎么开启NFC(华为mate20怎么开启高清通话)

  • visual studio是干嘛的(visual studio做什么用的)

    visual studio是干嘛的(visual studio做什么用的)

  • 苹果x设备管理在哪(苹果x设备管理在哪里找不到)

    苹果x设备管理在哪(苹果x设备管理在哪里找不到)

  • 触宝电话如何改号码(触宝电话如何改手机号)

    触宝电话如何改号码(触宝电话如何改手机号)

  • macos monterey怎么降级系统?macos monterey降级系统教程(macos monterey怎么降级)

    macos monterey怎么降级系统?macos monterey降级系统教程(macos monterey怎么降级)

  • Pytorch深度学习实战3-5:详解计算图与自动微分机(附实例)

    Pytorch深度学习实战3-5:详解计算图与自动微分机(附实例)

  • dedecms教程:DedeCMSV5.7中织梦链怎么删除(dedecms安装步骤)

    dedecms教程:DedeCMSV5.7中织梦链怎么删除(dedecms安装步骤)

  • 撤销增值税申报流程
  • 我可以通过什么知道明天的天气情况
  • 一次性收取加盟费 所得税
  • 母公司合并子公司会计处理
  • 年终奖个人所得税计算器
  • 水费3个点税
  • 车险 专票
  • 企业承担的员工在职培训成本包括
  • 小规模纳税人个税申报时间
  • 企业存款利息收入税率
  • 出口退回的增值税计入哪个会计科目
  • 建筑业暂估成本表
  • 一般纳税人有按季申报的吗
  • 易票365怎么认证发票
  • 买车交税怎么算价格
  • 增值税专用发票的税率是多少啊
  • 小规模季度超过30万怎么填报增值税
  • 资产处置损益是收入还是费用
  • 商贸企业固定资产计提折旧吗
  • 怎么知道定额发票是真是假的
  • 出口企业预申报没有增值税专用发票稽核信息如何处理?
  • 领用原材料用于职工福利的税费怎么算
  • 最新气象报告
  • 在业和存续是什么经营状态
  • php比较大小的函数
  • 公司注册小规模有什么要求
  • .info是什么意思?
  • vue实现打印
  • 作废的普通发票,顾客联拿不回来
  • 企业规模扩大后更易于管理吗
  • 厂房的设计审查要求
  • css怎样设置行间距
  • 全卷积网络fcn详解
  • bcdboot命令怎么用
  • 微软官方wintogo
  • 对公账户走账是怎么回事
  • 收到事业单位分红怎么办
  • 没有抄报税就申报了怎么办
  • 不借助的英文
  • 一般纳税人适用什么会计准则
  • 个体工商户税务注销流程
  • 计提银行存款利息
  • 不需要支付的应付账款
  • 如果收到现金做账了还叫坐支
  • 月末一般要结转哪些会计科目
  • 主营业务成本可以设明细科目吗
  • 贷款收取服务费
  • 其他贷款服务计入什么科目
  • 存货有哪几个科目
  • 对公账户 取款
  • 一般要做代理,授权书有什么用
  • 成本含税如何做会计分录
  • 进项发票已认证未抵扣分录
  • php连接mysql的步骤代码
  • mysql varchar2
  • sql 截取字符串某个字符之后
  • 关于植物的现代诗
  • win8.1应用商店还能用吗
  • win10文件夹设置
  • xp不能安装win8
  • xp系统关机界面设置
  • 双启动子存在的意义
  • ulimit命令详解
  • win7系统怎样
  • 应用程序发生异常如何解决
  • win8读不出u盘
  • linux ifconfig命令详解
  • linux中tr命令
  • win7计算机怎么设置开机密码
  • 2016年Win10 RS1预览版11095已送交合作伙伴
  • 找不到config/index taro
  • cocos如何实现跨平台
  • Unity3D游戏开发基础
  • js脚本如何获取数据库内容?
  • javascript总结笔记
  • 源码讲解
  • python读写文件wr
  • 广西电子税务局手机版
  • 掌上海关怎么查询
  • 缴纳耕地占用税的好处
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设