1. 实现自定义插件

一个VIP3插件一般需要有如下三个文件:

  • index.js:组织并导出插件
  • config.js:插件的默认配置,可用于参考并指导如何在application.yml中自定义配置
  • <插件名>.js:插件的逻辑实现
    • 必须含有 初始化“init(config)” 方法
    • 可以通过属性 “isAfterCoreInited” 设置插件初始化的时机是在平台初始化完成前还是后,默认为:true/内核初始化后

1.1. 插件示例

下面以一个可配置问候语言的问候插件为例,介绍插件的实现、注册和使用。

1.1.1. 插件实现

插件的默认配置 config.js

const config = {
    greet: {
        locale: "en" // 设置问候语言
    }
}

export default config

插件的逻辑实现 greet-plugin.js

import defaultConfig from "./config"

const greet = {
    name: "greet",
    config: {},
    isAfterCoreInited: true, // 是否在内核初始化完成后初始化(可选,默认为:true)
    greetings: null,

    init(config) {
        this.config = {...defaultConfig.greet, ...config.greet}
        // this.config = Object.assign(defaultConfig.greet, config.greet)

        this.greetings = new Map()
        this.greetings.set("en", "Hello")
        this.greetings.set("cn", "你好")
    },

    //////

    sayHello(name) {
        console.log(`${this.greetings.get(this.config.locale)},${name}`)
    }
}

export default greet

导出插件 index.js

import greet from "./greet-plugin"

export default greet

1.2. 注册插件

在应用的 main.js 中的引入并注册插件

import App from "./App"
import greet from "./sample/plugin/greet"

(async () => {
    // 创建应用
    const app = await createApp(App, [
            greet
        ]
    )

    app.mount("#app")
})()

1.3. 使用插件

import greet from "./greet";

export default {
    name: "PluginSample",
    methods: {
        handleGreetBtnClick() {
            greet.sayHello("周剑辉")
        }
    }
}

此时输出为:

英文问候

然后在 application.yml 中配置问候语言为中文 “cn” 。

greet:
  locale: "cn"

此时输出为:

中文问候

Copyright ©zhoujianhui all right reserved,powered by Gitbook更新时间: 2024-10-25 15:19:49

results matching ""

    No results matching ""