博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用vue写一个组件库
阅读量:5915 次
发布时间:2019-06-19

本文共 2170 字,大约阅读时间需要 7 分钟。

如何使用vue写一个组件库

新建vue项目

使用vue-cli初始化一个项目:

vue init webpack VueComponentcd VueComponentnpm installnpm run dev

以上就新建好了一个vue项目

项目目录

首先,定义好目录,经过观察大多数的组件库,基本是这样的目录:

|-- examples      // 用于demo展示|-- packages      //  用于编写存放组件

因为修改了目录名称,就需要修改下webpack的配置文件,修改编辑目录

build/webpack.bash.config.js

{    test: /\.js$/,    loader: 'babel-loader',    include: [resolve('examples'), resolve('test'), resolve('node_modules/webpack-dev-server/client'),resolve('packages')]}

将编译目录指向examples和packages。

写一个组件

在packages下面创建一个Button组件,目录如下(目录构建都是参照ele-ui)

|-- examples    |-- packages |      |--Button|           |--src|           |   |--main.vue  // 编写组件内容|           |-- index.js // 导出组件

main.vue内容:

index.js内容:

import Button from './src/main.vue';// 在每个组件下面定义一个install方法。Button.install = function (Vue) {  Vue.component(Button.name, Button);};export default Button;

到此,就完成了一个组件的简单编写

导出组件

组件写好之后,需要让组件支持全局引入和按需引,在packages下面新建一个index.js文件,用于将组件导出

代码:

import Button from './button/index.js'; // 引入组件const components = [  Button];//'vue-use是调用的install方法'const install = function(Vue) {  if (install.installed) return;  components.map(component => Vue.component(component.name, component));};if (typeof window !== 'undefined' && window.Vue) {    console.log('传入参数install方法')  install(window.Vue);}export default {  install, // 如果在外面使用vue.use的话,就会默认使用install方法  Button};

这里为什么要定义一个install方法呢?看下vue源码

import { toArray } from '../util/index'export function initUse (Vue: GlobalAPI) {  Vue.use = function (plugin: Function | Object) {    const installedPlugins = (this._installedPlugins || (this._installedPlugins = []))    if (installedPlugins.indexOf(plugin) > -1) {      return this    }    // additional parameters    const args = toArray(arguments, 1)    args.unshift(this)  ⚠️ if (typeof plugin.install === 'function') {   ⚠️   plugin.install.apply(plugin, args)    } else if (typeof plugin === 'function') {      plugin.apply(null, args)    }    installedPlugins.push(plugin)    return this  }}

由此可见,vue.use是调用传入的组件的instll方法。这也就解释了,为什么每个组件都定义了一个install方法。

使用组件

在examples的main.js里面引入组件:

import MVUI from '../packages/index'Vue.use(MVUI)

到此,一个非常简单的组件就写好了。

转载地址:http://fiwvx.baihongyu.com/

你可能感兴趣的文章
jquery获取元素到屏幕底的可视距离
查看>>
ENDNOTE使用方法(转发)
查看>>
计算机数制和运算的一点总结.
查看>>
UML系列 (五) 为什么要用UML建模之建模的重要性
查看>>
框架是什么,框架有什么用(转)
查看>>
集成测试
查看>>
对于I/O流中解压中遇到的问题
查看>>
问答项目---用户注册的那些事儿(JS验证)
查看>>
Android进阶篇-百度地图获取地理信息
查看>>
返回前一页并刷新页面方法
查看>>
2.3 InnoDB 体系架构
查看>>
不定宽高垂直居中分析
查看>>
项目管理学习笔记之二.工作分解
查看>>
C# PPT 为形状设置三维效果
查看>>
js数组实现不重复插入数据
查看>>
aidl跨进程通讯
查看>>
如何确定所运行的 SQL Server 2005 的版本?
查看>>
我的友情链接
查看>>
老李分享:qtp自动化测试框架赏析-关键字自动化测试框架 2
查看>>
忙里偷闲 -- 工作随笔
查看>>