(二)Vue3.x应用程序API

接下来的章节中我们将依次剖析Vue3.x中的各个选项、方法及部分功能的实现方式方法。

这篇我们将主要介绍到的是Vue3.x实例下的API。

import { createApp } from 'vue';
const app = createApp({});

在Vue 3.x中,可以将Vue的全局配置移到createApp方法中(例如在Vue 2.x中,我们用Vue.component()来注册全局组件,现在app.component()来创建全局组件);使用createApp来创建一个应用根实例(类似于Vue 2.x的 new Vue() );由于该方法返回的是应用程序本身,所以可以进行链式调用其他方法来处理相应的事件。如下列举:

1、component(全局组件)

参数:1、String - 组件名称 2、Function | Object - 组件。
用法:用于检索或注册全局组件,注册组件会以给定的name来作为组件名称。
用例:

import { createApp } from 'vue';
const app = createApp({});
// myComponent 为组件实例
app.component('my-component', myComponent);
// 重置组件
const MyComponent = app.component('my-component', {});

2、config(全局配置)

用法:应用程序的全局配置,请参照下一章 (三)Vue3.x应用配置
用例:

import { createApp } from 'vue';
const app = createApp({});
app.config = {...};

3、directive(全局指令)

参数:1、name - 指令名称 2、Function | Object - 指令。
用法:用于检索或注册全局指令,注册会以给定的name来作为指令名称。
用例:

import { createApp } from 'vue';
const app = createApp({});

// 注册指令
app.directive('my-directive', {
    beforeMount() {},
    mounted() {},
    beforeUpdate() {},
    update() {},
    beforeUnmount() {},
    unmount() {}
});

// 更新指令
app.directive('my-directive', () => {
    // 更新该指令的某个或多个周期处理函数
});

// 获取指令
const myDirective = app.directive('my-directive');

4、mixin(全局混合)

参数:Object
用法:在全局实例中注入混合,会影响到所有的组件实例,不推荐使用

5、mount(节点挂载)

参数:Element - 节点。
用法:将应用程序的根组件挂载到指定的DOM元素上
用例:

import { createApp } from 'vue';
const app = createApp({});
app.mount('#my-app');

6、provide、inject (父组件数据注入与子孙组件数据获取)

参数:Object | () => Object 。
概述:provide一般与inject一起使用,provide为当前实例的所有子孙组件注入数据,inject在当前实例的子孙组件中获取注入的数据
用例:

import { createApp } from 'vue';
// 全局注入数据
const app = createApp({
    provide: {
        user: 'zhang_san'
    }
});
// 获取数据
app.component('my-component', {
    inject: ['user'],
    data() {...}
});
注意:注意:当父组件provide注入的数据发生变化时,所有子孙组件的inject同步更新(推荐使用provide来注入一个响应式变量)。

7、unmount(取消挂载)

参数:Element - 节点。
用法:在提供的DOM元素上取消Vue实例的挂载
用例:

import { createApp } from 'vue';
const app = createApp({})
// 挂载
app.mount('#my-app');
// 取消挂载
setTimeout(() => app.unmount('#my-app'), 2000);

8、use(插件)

参数:Object | Function - 插件。
用法:与Vue 2.x类似,如果参数为对象,则需要提供一个install的方法;如果参数本身就是一个方法,那么这个方法将默认为安装插件的方法;在进行方法的调用时,Vue将作为第一个参数传入方法中。

注意:同一个插件多次调用use时,该插件也只能被安装一次。

下一章:(三)Vue3.x应用配置
上一章:(一)Vue3.x different Vue2.x

ps:哪有什么岁月静好,只是有人在为你负重前行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342