Vue3 app.use 与 install 函数的作用

阅读: 评论:0

Vue3  app.use 与 install 函数的作用

Vue3 app.use 与 install 函数的作用

1. app.use

在 vue3 中,默认初始化 vue 的方式是这样的

// src/main.js
import { createApp } from 'vue'
import App from '@/App.vue'
const app = createApp(App)
unt('#app')
export default app

如果我们需要引入 vue-router 则需要修改成比如这样

// src/main.js
import { createApp } from 'vue'
...
++++++++
import Home from '@/pages/Home.vue'
import {createRouter,createWebHistory
} from "vue-router"const routes = [{ path: '/home', component: Home },
]
const router = createRouter({history: createWebHistory('/'),routes
})
// 最后通过 app.use 方法引入 Router
app.use(router)

类似的,其它插件如 i18n、vuex、vant 等都要借助 app.use 引入,
官方也解释了 app.use 就是用来引入插件,这里不在赘述。

2. install

在介绍 install 方法前,我们需要知道有这么一个方法 app.use(plugin, options)
其中 plugin 表示要传递的插件对象options 参数是可选的,表示选项配置
install 方法的定义就插件对象里面,install 方法会在引入插件时自动被 vue 调用,
并传参 vue 实例和 options ,具体代码如下:

// src/plugins/my-plugin.js
const myPlugin = {install(app, options) {// { name: 'Jack' }console.log(options);// 有了 app,我们注入一个全局组件appponent('my-button', import('@/components/my-button.vue'))// 也可以声明一个全局属性/函数fig.globalProperties.$Tools = () => console.log('Hello,world')}
}
// src/main.js
app.use(myPlugin, { name: 'Jack' })

以上代码的作用在 vue 官方都有解释,但它还隐藏了与 vue-cli 构建有关的一个很有用的功能,
install 方法除了在插件对象内定义外,组件也可以自定义 install 方法,是的,组件本身也是一个对象,
因此组件被引入时也会自动触发 install,代码如下

// src/components/my-buttonn.js
import MyButton from '@/components/my-button.vue'
MyButton.install = (app) => {appponent('MyButton', MyButton)
}

上面在 my-button.js 中引入 my-butgton.vue 组件,并新增了 install 方法,里面通过 vue 实例加载了这个 my-button 组件,这有什么用呢?我们可以先看看 vue-cli 构建
里面解释了在打包 vue 时,有个选项 --target lib 命令,此命令可以将文件打包成一个可作为依赖导入的 js 库,
我们可以将这个库推送到 npm 中,然后通过 npm install [name] 的方式安装下来,接着在项目中引入这个依赖,就可以像往常那样使用组件了,伪代码如下:

// 例如:npm install cookcyq/MyButton// 在代码中引入
// demo.vue
<template><div class="main"><MyButton/></div>
</template>
<script>
import MyButton from '@/cookcyq/Mybutton';
export default {components: {MyButton,}
}
</script>

当依赖引入时,便会触发 install 方法,实现组件自引,一个库不止一个组件,你可以在 my-button.js 引入额外的组件,
构建属于自己的组件库,这样既可以单独维护,也可以减少主体项目的代码量。

对库感兴趣的同学可以往下读 Vue3 & 详解 vue-cli 使用 --target lib 打包的方式

完!

本文发布于:2024-01-31 14:13:26,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170668160629105.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   作用   app   install
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23