夜猫子的知识栈 夜猫子的知识栈
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《Web Api》
    • 《ES6教程》
    • 《Vue》
    • 《React》
    • 《TypeScript》
    • 《Git》
    • 《Uniapp》
    • 小程序笔记
    • 《Electron》
    • JS设计模式总结
  • 《前端架构》

    • 《微前端》
    • 《权限控制》
    • monorepo
  • 全栈项目

    • 任务管理日历
    • 无代码平台
    • 图书管理系统
  • HTML
  • CSS
  • Nodejs
  • Midway
  • Nest
  • MySql
  • 其他
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • Ajax
  • Vite
  • Vitest
  • Nuxt
  • UI库文章
  • Docker
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

夜猫子

前端练习生
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《Web Api》
    • 《ES6教程》
    • 《Vue》
    • 《React》
    • 《TypeScript》
    • 《Git》
    • 《Uniapp》
    • 小程序笔记
    • 《Electron》
    • JS设计模式总结
  • 《前端架构》

    • 《微前端》
    • 《权限控制》
    • monorepo
  • 全栈项目

    • 任务管理日历
    • 无代码平台
    • 图书管理系统
  • HTML
  • CSS
  • Nodejs
  • Midway
  • Nest
  • MySql
  • 其他
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • Ajax
  • Vite
  • Vitest
  • Nuxt
  • UI库文章
  • Docker
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 基础

  • 响应式

  • 组件

  • 过渡&动画

  • 可复用性

    • Mixin混入
    • 渲染函数
    • 全局API
      • 全局API:createApp
        • 参数
        • vue2 和 vue3 全局 API 的对比:
      • 全局 API Treeshaking(概念)
    • Teleport
    • 组合式API
    • 引入css样式
    • 自定义hook
    • 自定义插件
    • 自定义事件
    • 自定义指令
  • 工具

  • 规模化

  • 路由(核心)

  • 组合式

  • Vuex

  • Pinia

  • 其他

  • Vue3 源码学习记录

  • 《Vue》笔记
  • 可复用性
夜猫子
2022-06-26
目录

全局API

# 全局API

常用全局API

全局API 说明
createApp 应用上下文的应用实例
h 虚拟节点
defineComponent 具有组件选项的对象
defineAsyncComponent 只有在需要时才会加载的异步组件
defineCustomElement 返回一个原生的自定义元素
createRenderer 自定义渲染器
nextTick DOM 更新回调
useCssModule 允许在 setup 的单文件组件函数中访问 CSS 模块

# 全局API:createApp

import { createApp } from 'vue'

const app = createApp({})
1
2
3

# 参数

该函数接收一个根组件选项对象作为第一个参数:

const app = createApp({
  data() {
    return {
      ...
    }
  },
  methods: {...},
  computed: {...}
  ...
})
1
2
3
4
5
6
7
8
9
10

Vue3 main.js中的 createApp

createApp(app).mount('#app')
1

# vue2 和 vue3 全局 API 的对比:

2.x 全局 API 3.x 实例 API (app) 说明
Vue.config app.config 每个 Vue 应用的配置项
Vue.config.productionTip 移除 使用生产版本提示
Vue.config.ignoredElements app.config.compilerOptions.isCustomElement 指定方法识别 Vue 意外定义的自定义元素
Vue.component app.component 注册组件
Vue.directive app.directive 注册自定义指令
Vue.mixin app.mixin 混入(公共JS代码)
Vue.use app.use 插件的 install 调用
Vue.prototype app.config.globalProperties 任何组件实例中访问的全局 property
Vue.extend 移除 构造函数的类,已被 createApp 功能替代
- app.provide 向下组件传递的值
- app.mount() 所提供的 DOM 元素渲染根组件
- app.unmount() 卸载所提供的 DOM 元素上应用了的根组件。
- app.version 以字符串形式提供已安装的 Vue 的版本号。

所有其他不全局改变行为的全局 API 现在都是具名导出。

# 全局 API Treeshaking(概念)

如果模块打包工具支持 tree-shaking,则 Vue 应用中未使用的全局 API 将从最终的打包产物中排除,从而获得最佳的文件大小。

如果使用了 webpack 这样的模块打包工具,这可能会导致 Vue 的源代码输出打包到插件中,而通常情况下,这并不是你所期望的。为了防止发生这种情况,一种常见做法是配置模块打包工具以将 Vue 从最终的打包产物中排除。对于 webpack 来说,你可以使用 externals (opens new window) 配置选项:

// webpack.config.js
module.exports = {
  /*...*/
  externals: {
    vue: 'Vue'
  }
}
1
2
3
4
5
6
7

这将告诉 webpack 将 Vue 模块视为一个外部库,而不将它打包进来。

编辑 (opens new window)
上次更新: 2023/7/11 18:57:41
渲染函数
Teleport

← 渲染函数 Teleport→

最近更新
01
IoC 解决了什么痛点问题?
03-10
02
如何调试 Nest 项目
03-10
03
Provider注入对象
03-10
更多文章>
Copyright © 2019-2025 Study | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式