网站竞价,wordpress 标题入库,北京网站seo收费标准,学做早餐网站介绍 插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码。下面是如何安装一个插件的示例#xff1a; import { createApp } from vueconst app createApp({})app.use(myPlugin, {/* 可选的选项 */
}) 一个插件可以是一个拥有 install() 方法的对象#xff0c;也可以直…介绍 插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码。下面是如何安装一个插件的示例 import { createApp } from vueconst app createApp({})app.use(myPlugin, {/* 可选的选项 */
}) 一个插件可以是一个拥有 install() 方法的对象也可以直接是一个安装函数本身。安装函数会接收到安装它的应用实例和传递给 app.use() 的额外选项作为参数 const myPlugin {install(app, options) {// 配置此应用}
} 插件没有严格定义的使用范围但是插件发挥作用的常见场景主要包括以下几种 通过 app.component() 和 app.directive() 注册一到多个全局组件或自定义指令。 通过 app.provide() 使一个资源可被注入进整个应用。 向 app.config.globalProperties 中添加一些全局实例属性或方法 一个可能上述三种都包含了的功能库 (例如 vue-router)。 编写一个插件 为了更好地理解如何构建 Vue.js 插件我们可以试着写一个简单的 i18n (国际化 (Internationalization) 的缩写) 插件。 让我们从设置插件对象开始。建议在一个单独的文件中创建并导出它以保证更好地管理逻辑如下所示 // plugins/i18n.js
export default {install: (app, options) {// 在这里编写插件代码}
} 我们希望有一个翻译函数这个函数接收一个以 . 作为分隔符的 key 字符串用来在用户提供的翻译字典中查找对应语言的文本。期望的使用方式如下 h1{{ $translate(greetings.hello) }}/h1 这个函数应当能够在任意模板中被全局调用。这一点可以通过在插件中将它添加到 app.config.globalProperties 上来实现 // plugins/i18n.js
export default {install: (app, options) {// 注入一个全局可用的 $translate() 方法app.config.globalProperties.$translate (key) {// 获取 options 对象的深层属性// 使用 key 作为索引return key.split(.).reduce((o, i) {if (o) return o[i]}, options)}}
} 我们的 $translate 函数会接收一个例如 greetings.hello 的字符串在用户提供的翻译字典中查找并返回翻译得到的值。 用于查找的翻译字典对象则应当在插件被安装时作为 app.use() 的额外参数被传入 import i18nPlugin from ./plugins/i18napp.use(i18nPlugin, {greetings: {hello: Bonjour!}
}) 这样我们一开始的表达式 $translate(greetings.hello) 就会在运行时被替换为 Bonjour! 了。 TIP 请谨慎使用全局属性如果在整个应用中使用不同插件注入的太多全局属性很容易让应用变得难以理解和维护。 插件中的 Provide / Inject 在插件中我们可以通过 provide 来为插件用户供给一些内容。举例来说我们可以将插件接收到的 options 参数提供给整个应用让任何组件都能使用这个翻译字典对象。 // plugins/i18n.js
export default {install: (app, options) {app.provide(i18n, options)}
} 现在插件用户就可以在他们的组件中以 i18n 为 key 注入并访问插件的选项对象了。 export default {inject: [i18n],created() {console.log(this.i18n.greetings.hello)}
}