vue组件的制作流程介绍(附代码)

本篇文章给大家带来的内容是关于vue组件的制作流程介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

组件化是前端开发非常重要的一部分,从业务中解耦出来,可以提高项目的代码复用率。更重要的是我们还可以打包发布,俗话说集体的力量是伟大的,正因为有许许多多的开源贡献者,才有了现在的世界。

不想造轮子的工程师,当不了合格的搬运工 。让我们来了解一下vue组件从开发到打包发布流程,并配置Github主页。

本文以 vue-clock2 组件为例,欢迎star^_^~~ 项目地址

目标框架:vue

打包工具:webpack

立即学习“前端免费学习笔记(深入)”;

发布源:npm

代码托管:github

项目结构

|-- node_modules|-- src| |-- index.js| |-- vue-clock.vue|-- docs| |-- index.html| |-- index.css|-- dist

登录后复制

src: 组件相关代码。

node_modules: 组件依赖包。

docs: 说明文档,组件简单的可以单个页面,也可以使用vuepress。

dist: 打包后组件内容,一般 package.json 的 main 入口指向这个文件夹里的文件。

组件开发

vue组件开发相对来讲还是比较容易的,创建一个 vue-clock.vue 文件,组件的相关逻辑实现。

该组件主要实现一个基于 time 属性输入,显示对应时间的钟表样式。

    

{{h}}

登录后复制

通过元素画出钟表的样式,基于 css3的transform 属性旋转出每个时间点。
因为钟表的时针并不是直接跳到下一个点的,所以需要计算出不同分钟时,时钟指针的旋转角度。
后续增加了不指定时间的情况,显示当前时间并每分钟自动更新。

export default {    data() {        return {            timeList: [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],            hourRotate: "rotatez(0deg)",            minuteRotate: "rotatez(0deg)"        };    },    props: ["time"],    watch: {        time() {            this.show();        }    },    methods: {        show() {            this.showTime();            if (this._timer) clearInterval(this._timer);            if (!this.time) {                this._timer = setInterval(() => {                    this.showTime();                }, 60 * 1000);            }        },        showTime() {            let times;            if (this.time) {                times = this.time.split(":");            } else {                const now = new Date();                times = [now.getHours(), now.getMinutes()];            }            let hour = +times[0];            hour = hour > 11 ? hour - 12 : hour;            let minute = +times[1];            let hourAngle = hour * 30 + minute * 6 / 360 * 30;            let minuteAngle = minute * 6;            this.hourRotate = `rotatez(${hourAngle}deg)`;            this.minuteRotate = `rotatez(${minuteAngle}deg)`;        }    },    mounted() {        this.show();    },    destroyed() {        if (this._timer) clearInterval(this._timer);    }};

登录后复制

还有一些钟表的布局样式,可以直接在项目里查看。vue-clock.vue

接着我们需要抛出组件,以便在项目中引入使用。

    // src/index.js    import Clock from './vue-clock.vue';    export default Clock;    if (typeof window !== 'undefined' && window.Vue) {        window.Vue.component('clock', Clock);    }

登录后复制

这里,组件开发的部分已经完成了,喝杯咖啡,check一下代码,我们要把它打包发布到npm上。

打包发布

打包前确认一下 webpack 的配置文件输出。

  output: {    path: path.resolve(__dirname, './dist'),    publicPath: '/dist/',    filename: 'vue-clock.min.js',    library: 'Clock',    libraryTarget: 'umd',    umdNamedDefine: true  }

登录后复制

打包组件文件到 dist 文件夹中。

npm run build

登录后复制

npm发布

配置package.json

{  "name": "vue-clock2",  "description": "Vue component with clock",  "version": "1.1.2",  "author": "bestvist",  "keywords": [    "vue",    "component",    "clock",    "time"  ],  "main": "dist/vue-clock.min.js",  "license": "MIT",  "homepage": "https://bestvist.github.io/vue-clock2/"}

登录后复制

登录npm

如果使用淘宝镜像的,需要先修正一下镜像源。

npm config set registry https://registry.npmjs.org/

登录后复制

// 查看登录人npm whoami// 登录npm login// 发布npm publish

登录后复制

如果看到类似信息,说明发布成功。

npm notice+ vue-clock2@1.1.2

登录后复制

Github主页

把项目上传到github托管,配置一份基本 README.md 说明文档。
因为组件已经发布到npm上,所以可以配置几个徽章在README中。

// npm 版本[npm version](https://img.shields.io/npm/v/vue-clock2.svg)// npm 下载量[npm download](https://img.shields.io/npm/dt/vue-clock2.svg)

登录后复制

更多的徽章配置可以查看shields

接着描述一下组件的引入和使用方法:

安装:npm install vue-clock2使用:    import Clock from 'vue-clock2';  export default {    components: { Clock },    data () {      return {          time: '10:40'      }    }  }

登录后复制

更详细的交互或是属性说明就交给文档来解决了。
在 github 项目上通过 settings 指定 GitHub Pages

426735174-5bc49c9fda6d8_articlex.jpg

组件文档说明应包括:

组件引入方法

组件使用方法

一个简单的例子

组件属性描述说明

总结

开发 -> 发布 -> 托管

一个组件轮子的制作流程大致介绍完了,希望本文可以帮助到您。

以上就是vue组件的制作流程介绍(附代码)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2739180.html

(0)
上一篇 2025年3月8日 01:59:27
下一篇 2025年3月6日 13:27:52

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论