vue2升级vue3: 全局变量挂载与类型声明
全局变量挂载
vue2
Vue.prototype.$lm = {}
vue3
const app = Vue.createApp({})
app.config.globalProperties.$lm = {}
声明类型
使用 ts 的情况下,挂载完全局变量后,在 vue 文件中,通过 this 对象 . 出来不来提示的。
什么是声明文件?
声明文件就是给js代码补充类型标注. 这样在ts编译环境下就不会提示js文件"缺少类型".
声明变量使用关键字declare来表示声明其后面的全局变量的类型, 比如:
// yourAppPackages/global.d.ts
declare var __DEV__: boolean
declare var __TEST__: boolean看过vue3源码的同学一定知道这些是vue中的变量, 上面代码表示__DEV__等变量是全局, 并且标注了他们的类型. 这样无论在项目中的哪个ts文件中使用__DEV__, 变量ts编译器都会知道他是boolean类型.
声明文件的文件名是有规范要求的, 必须以.d.ts结尾, 声明文件放在项目里的任意路径/文件名都可以被ts编译器识别, 但实际开发中发现, 为了规避一些奇怪的问题, 推荐放在根目录下.
一般比较大牌的第三方js插件在npm上都有对应的声明文件, 比如jquery的声明文件就可以在npm上下载,比如:@types/jquery
参考资料:为 Vue3
转载本站文章《vue2升级vue3: 全局变量挂载与类型声明》,
请注明出处:https://www.zhoulujun.cn/html/webfront/ECMAScript/vue3/8836.html
vue2升级vue3: 全局变量挂载与类型声明的更多相关文章
- vue2升级vue3:vue2 vue-i18n 升级到vue3搭配VueI18n v9
项目从vue2 升级vue3,VueI18n需要做适当的调整.主要是Vue I18n v8.x 到Vue I18n v9 or later 的变化,其中初始化: 具体可以参看:https://vue- ...
- vue2升级vue3指南(二)—— 语法warning&error篇
本文总结了vue2升级vue3可能会遇到的语法警告和错误,如果想知道怎样升级,可以查看我的上一篇文章:vue2升级vue3指南(一)-- 环境准备和构建篇 Warning 1.deep /deep/和 ...
- vue2升级vue3:Vue Demij打通vue2与vue3壁垒,构建通用组件
如果你的vue2代码之前是使用vue-class-component 类组件模式写的.选择可以使用 https://github.com/facing-dev/vue-facing-decorator ...
- vue2升级vue3:vue-i18n国际化异步按需加载
vue2异步加载之前说过,vue3还是之前的方法,只是把 i18n.setLocaleMessage改为i18n.global.setLocaleMessage 但是本文还是详细说一遍: 为什么需要异 ...
- uniapp项目vue2升级vue3简单记录
看到好多开源项目都升级了vue3,看文章说vue3性能升级很多,而且组合式api很香,遂把最近开发的自助洗车app升级下,在此记录下出现的问题. uniapp升级vue3官方指南 我是先去vue官网看 ...
- vue2升级vue3指南(一)—— 环境准备和构建篇
1.nodejs和npm 注意二者的版本,版本过低需要升级,本人升级后的版本如下: $ node -v v16.15.1 $ npm -v 8.11.0 2.package.json 和依赖升级 由于 ...
- 【转载】vue3 中如何像 vue2 的 extend 一样挂载未挂载的组件,拿到标签本身($el)
原文地址:https://blog.csdn.net/qq_39953537/article/details/110437554 vue3 中如何像 vue2 的 extend 一样挂载未挂载的组件, ...
- vue2与vue3的差异(总结)?
vue作者尤雨溪在开发 vue3.0 的时候开发的一个基于浏览器原生 ES imports 的开发服务器(开发构建工具).那么我们先来了解一下vite Vite Vite,一个基于浏览器原生 ES i ...
- Vue2和Vue3技术整理1 - 入门篇 - 更新完毕
Vue2 0.前言 首先说明:要直接上手简单得很,看官网熟悉大概有哪些东西.怎么用的,然后简单练一下就可以做出程序来了,最多两天,无论Vue2还是Vue3,就都完全可以了,Vue3就是比Vue2多了一 ...
- vue2和vue3的区别?
vue2和vue3的主要区别在于以下几点: 1.生命周期函数钩子不同 2.数据双向绑定原理不同 3.定义变量和方法不同 4.指令和插槽的使用不同 5.API类型不同 6.是否支持碎片 7.父子组件之间 ...
随机推荐
- NGINX相关介绍其一
HTTP协议和NGINX 跨网络的主机间通讯 远程的两台主机联系在一起 套接字Socket是进程间通信IPC的一种实现,允许位于不同主机(或同一主机)上不同进程之间进行通信和数据交换,SocketAP ...
- Hooks的核心原理梳理
我们前端都在诟病专业版,它的组件,它的耦合嵌套之深,它的性能. 我们希望改善,我们认为,如果--就好了. 如果重构就好了,如果技术栈统一就好了,如果有规范就好了. 其实,不用等,我们只要在写代码,就可 ...
- 学习Hadoop不错的系列文章(转)
http://www.cnblogs.com/xia520pi/archive/2012/04/22/2464934.html 1)Hadoop学习总结 (1)HDFS简介 地址:http://for ...
- RT-Thread 中 minIni 组件包无法添加的解决方法
事件 今天在 Env 下添加 minIni 包的时候出现了无法将其添加到工程的情况.借此机会来记录一下如何解决该类问题. 如果你想快速排错可以直接到 [2.minIni 组件出现的问题]查看. 一.准 ...
- C/C++ 通过SQLiteSDK增删改查
SQLite,作为一款嵌入式关系型数据库管理系统,一直以其轻量级.零配置以及跨平台等特性而备受青睐.不同于传统的数据库系统,SQLite是一个库,直接与应用程序一同编译和链接,无需单独的数据库服务器进 ...
- Unicode编码解码
一.Unicode概述 Unicode是一种字符编码标准,旨在解决不同字符集之间的兼容性问题.它为全球所有语言提供了一种统一的编码方式,使得各种字符能够在计算机系统中正确显示和处理.Unicode字符 ...
- [ABC272G] Yet Another mod M
Problem Statement You are given a sequence $A=(A_1,A_2,\dots,A_N)$ of length $N$ consisting of posit ...
- Spring Framework系统架构
- ssm整合-异常处理器
异常处理器 程序开发过程中不可避免会遇到异常现象 类似于这样的异常 异常出现的种类: 各个层均可能出现异常,当我们出现异常时,处理代码应该写在哪一层? 表现层,因为要把异常网上抛,在表现层进行 ...
- .Net 8与硬件设备能碰撞出怎么样的火花(使用ImageSharp和Protobuf协议通过HidApi与设备通讯)
前言 本人最近在社区里说想做稚晖君的那个瀚文键盘来着,结果遇到两个老哥一个老哥送了我电路板,一个送了我焊接好元件的电路板,既然大家这么舍得,那我也就真的投入制作了这把客制化键盘,当然我为了省钱也是特意 ...