当前位置: 首页 > news >正文

Vue 3 中通过 createApp 创建的 app 实例的所有核心方法,包含完整示例、使用说明及对比表格

以下是 Vue 3 中通过 createApp 创建的 app 实例的所有核心方法,包含完整示例、使用说明及对比表格:
在这里插入图片描述


1. app.component()

作用:注册全局组件
参数

  • name:组件名称(字符串)
  • component:组件构造器(对象或函数)
    示例
// 注册全局组件
const app = createApp(App);
app.component('MyButton', {template: '<button>{{ text }}</button>',props: ['text']
});// 在 App.vue 中直接使用 <my-button text="点击" />

2. app.directive()

作用:注册全局指令
参数

  • name:指令名称(字符串)
  • definition:指令定义对象(包含 mountedupdated 等钩子)
    示例
// 注册 v-focus 指令
app.directive('focus', {mounted(el) {el.focus();}
});// 在模板中使用 <input v-focus />

3. app.mixin()

作用:注册全局混入
参数

  • mixinOptions:混入对象(包含选项如 datamethods 等)
    示例
// 全局混入一个方法
app.mixin({methods: {showAlert() {alert('全局混入的方法');}}
});// 在任意组件中直接调用 this.showAlert()

4. app.config

作用:配置 Vue 实例
常用属性

  • productionTip:控制生产环境提示
  • devtools:启用/禁用开发者工具
    示例
// 禁用生产环境提示
app.config.productionTip = false;// 禁用开发者工具
app.config.devtools = false;

5. app.use()

作用:安装插件
参数

  • plugin:插件函数(可接受 app 实例和其他参数)
    示例
// 安装 axios 插件
import axios from 'axios';
app.use(axios, { baseURL: 'https://api.example.com' });// 在组件中通过 this.$axios 使用

6. app.provide()

作用:提供响应式数据给后代组件
参数

  • key:数据标识符(字符串或 Symbol)
  • value:数据值
    示例
// 提供用户信息
app.provide('user', reactive({ name: 'Alice' }));// 在后代组件中通过 inject 获取
const user = inject('user');
console.log(user.name); // Alice

7. app.mount()

作用:挂载应用到 DOM
参数

  • element:挂载目标(DOM 元素或选择器字符串)
    示例
// 挂载到 #app 元素
const vm = app.mount('#app');
console.log(vm); // 返回根组件实例

8. app.unmount()

作用:卸载应用实例
参数:无
示例

// 先挂载再卸载
const vm = app.mount('#app');
vm.$el; // 挂载后的 DOM 元素
app.unmount();
vm.$el; // null

对比表格总结

方法作用参数返回值示例简写
component注册全局组件name: string, component: Object/FunctionAppapp.component('MyBtn', MyBtnComponent)
directive注册全局指令name: string, definition: { mounted: Function, ... }Appapp.directive('focus', { mounted: el => el.focus() })
mixin注册全局混入mixinOptions: ObjectAppapp.mixin({ methods: { showAlert() { ... } } })
config配置 Vue 实例通过属性修改(如 app.config.productionTip = falseapp.config.devtools = false
use安装插件plugin: FunctionAppapp.use(axios, { baseURL: '...' })
provide提供响应式数据key: string/Symbol, value: anyAppapp.provide('user', reactive({ name: 'Alice' }))
mount挂载应用到 DOMelement: string/HTMLElement根组件实例app.mount('#app')
unmount卸载应用实例app.unmount()

关键差异对比

方法作用范围数据/功能影响典型场景
component全局组件注册全局可用,无需局部注册统一管理公共组件
directive全局指令定义全局指令复用自定义交互逻辑(如焦点、动画)
mixin全局选项合并可能导致代码混乱,慎用共享通用方法/计算属性
config配置 Vue 核心行为影响整个应用的运行环境禁用开发者工具或静默模式
use插件集成扩展 Vue 功能(如状态管理、HTTP 请求)安装 Vuex、Vue Router 等插件
provide/inject祖先到后代通信响应式数据传递,避免 prop 钉扎在深层组件中共享数据
mount/unmount应用生命周期管理控制应用的挂载和卸载动态加载/卸载 Vue 应用

使用建议

  • 组件/指令/混入:优先使用局部注册,避免全局污染。
  • 插件管理:通过 use 安装插件,保持代码模块化。
  • 提供/注入:替代 prop 钉扎,适用于跨层级数据传递。
  • 配置:仅在必要时修改(如生产环境优化)。

如果需要更具体场景的代码示例或深入解释,请进一步说明!

http://www.xdnf.cn/news/198307.html

相关文章:

  • 深入解析 PyTorch 中的 torch.distributions模块与 Categorical分布
  • 2025吃鸡变声器软件推荐
  • 【Vue3 组合式 API 在大型项目中的实践:useOperatorData 封装与应用】
  • 如何开发动态贴纸功能?一体化美颜SDK的技术实现思路与实战方案
  • Java 入门宝典--注释、关键字、数据类型、变量常量、类型转换
  • 服务器部署,Nginx安装和配置
  • 思维链理解汇总
  • 美团社招一面
  • 2025天津二类医疗器械经营备案攻略
  • AI 边缘盒子:智能与效率的边缘先锋
  • 生成对抗网络(Generative Adversarial Nets,GAN)
  • 知识付费平台推荐及对比介绍
  • Nacos源码—1.Nacos服务注册发现分析一
  • Coding Practice,48天强训(26)
  • 空间计算:开启人机交互新纪元的下一代技术范式
  • 安卓主题换肤功能
  • 安卓基础(强制转换)
  • 社交电商和泛娱乐平台出海南美市场支付方式与策略
  • ASP.NET MVC​ 入门指南四
  • 【quantity】3 Unit 物理量计算库(quantity.rs)
  • c语言的指针详解
  • js补环境工具使用技巧、补环境实例、重点环境检测点详解
  • Qt开发:XML文件的写入与读取
  • AI与机器人外科手术:如何用智能化技术提升手术精度与安全性?
  • 【android bluetooth 协议分析 06】【l2cap详解 10】【通过avdtp连接流程,感受l2cap通道的生命周期变化】
  • [JavaScript]对象关联风格与行为委托模式
  • WSL释放空间
  • ‌wangEditor 所有菜单项分类、说明及隐藏方法
  • Java项目场景题深度解析
  • Termux - Android终端应用与Linux环境