第一个Vue插件从封装到发布】的更多相关文章

前言 这是我封装的第一个Vue插件,实现的功能是滑动选择省市区,虽然只是一个简单的插件,但还是挺开心的,记录一下步骤. 插件地址:https://github.com/leichangchun/vue-area-select     欢迎指正 准备 Vue官网插件部分 的介绍虽然很简单,但是还是好好刷一遍的.由于此插件较为简单,主要用到以下两个点: 1 . Vue的插件需要有一个公开方法install 2 . 通过全局方法 Vue.use() 使用插件,在下文有栗子 创建工程 初始化工程 vue…
前言 Vue 项目开发过程中,经常用到插件,比如原生插件 vue-router.vuex,还有 element-ui 提供的 notify.message 等等.这些插件让我们的开发变得更简单更高效.那么 Vue 插件是怎么开发的呢?如何自己开发一个 Vue 插件然后打包发布到npm? 本文涉及技术点: Vue 插件的本质 Vue.extend() 全局方法 如何手动挂载 Vue 实例 Vue.use() 的原理 如何打包成 umd 格式 发布前如何测试 npm 包 一.定义 什么是Vue插件,…
title: 从零开始编写一个vue插件 toc: true date: 2018-12-17 10:54:29 categories: Web tags: vue mathjax 写毕设的时候需要一个mathjax编辑器,因此直接写一个插件试一下. 准备账号 进入npm注册账号 初始化项目 vue init webpack-simple mathjax-toolbar cd mathjax-toolbar npm install 得到的项目内的/src结构如下: src/ ├── assets…
创建库 本来以为很简单,结果配置了webpack之后,运行build就报错了,似乎不认识es6语法,于是先后安装了几个包: @babel/core @babel/preset-env babel-loader @babel/plugin-proposal-class-properties 进行了一些配置: // babel const presets = [ [ '@babel/env', { targets: '> 0.25%, not dead', useBuiltIns: 'usage',…
背景 项目中用到element-ui,里面用到了弹出组件,但是效果不太满意,于是自己就想写一个简单的弹出组件.目前已经发布到npm:可以通过npm i dialog-wxy -s 进行下载使用页面调用效果:在线查看 实现步骤 第一步 搭建vue简单工程 vue init webpack-simple dialog-wxy 创建好工程,在src 同层目录 新建文件夹 lib 用来编写源码:如图: 开始code 插件 插件写法,具体参考 https://cn.vuejs.org/v2/guide..…
#### 疑答 1.市面上已经有那么多插件可用,为什么还要造轮子?学习.借鉴思想.应用到开发 2.能否在项目中使用?与网上插件使用相同   更新维护问题怎么解决? 自身动力,使用者反馈等 #### 准备工具 1.官方文档https://cn.vuejs.org/v2/guide/plugins.html2.github.npm网站账号.node/npm.git3.代码工具:vscode #### 过程1.新建文件夹 vue-loading-text npm init 初始化 2.代码工具:vsc…
前记:上一篇 https://www.cnblogs.com/adouwt/p/9211003.html, 说到了一个完整的vue插件开发.发布的流程,总结下来就讲了这么一个事,如何注入vue, 如果封装vue插件,如何测试vue插件,以及如何发布vue插件到npm.但是,这里开发测试到发布是分开在两个项目的,未免有些多余,今天的笔记讲的就是在上一篇的基础上,重新换了一下项目框架,讲开发测试,到打包发 布一个完整的项目,这个项目欢迎大家测试使用,一个基于vue上传文件的一个插件,能够显示上传的速…
简单编写一个vue插件,当点击时触发notify插件,dom中出现相应内容并且在相应时间之后清除,我们可以在根组件中设定通知内容和延迟消失时间. 1. 基础知识 我们首先初始化一个vue项目,删除不需要的组件和样式,主要针对src下一些初始化资源,有过vue项目基础的应该很容易理解,如果没有vue基础建议先熟悉每个初始化文件的作用. 关于vue中如何开发插件可以直接看vue官方文档,简单了解插件开发过程,vue插件文档. 现在我们在src目录下新建一个plugin文件夹,里面存放要开发的插件no…
你把函数定义在 Vue 的原型链上,只能在 Vue 的实例里才能取到这个方法. vue组件 是一个Vue 的实例,所以你当然能在这里调用到 ajax 方法. 而,vuex 只是一个 vue插件,在 vuex 里的 this 不是指向 vue实例的,所以肯定是取不到 ajax 方法的. 建议:把函数放在一个单独的模块里定义,这样你在项目的不同地方,可以通过 import 的方式引入使用.…
前言 自从Vue2.0推荐大家使用 axios 开始,axios 被越来越多的人所了解.使用axios发起一个请求对大家来说是比较简单的事情,但是axios没有进行封装复用,项目越来越大,引起的代码冗余.就会非常麻烦的一件事.所以本文会详细的跟大家介绍,如何封装请求,并且在项目组件中复用请求.有需要的朋友可以做一下参考. 封装的基本要求 统一 url 配置 统一 api 请求 request (请求)拦截器,例如:带上token等,设置请求头 response (响应)拦截器,例如:统一错误处理…
前言 自从Vue2.0推荐大家使用 axios 开始,axios 被越来越多的人所了解.使用axios发起一个请求对大家来说是比较简单的事情,但是axios没有进行封装复用,项目越来越大,引起的代码冗余.就会非常麻烦的一件事.所以本文会详细的跟大家介绍,如何封装请求,并且在项目组件中复用请求.有需要的朋友可以做一下参考. 封装的基本要求 统一 url 配置 统一 api 请求 request (请求)拦截器,例如:带上token等,设置请求头 response (响应)拦截器,例如:统一错误处理…
什么是vue插件? 从功能上说,插件是为Vue添加全局功能的一种机制,比如给Vue添加一个全局组件,全局指令等: 从代码结构上说,插件就是一个必须拥有install方法的对象,这个方法的接收的第一个参数是Vue构造函数,还可以接收一个可选的参数,用于配置插件: var myplugin = { install:function(Vue, options){ ... } } 从意义上来说,正如jQuery的$.fn使jQuery有了一个庞大的生态一样,Vue的插件机制使Vue形成了一个生态系统,你…
vue的插件开发 这篇文章较长,需要一定的阅读时间.这里有一份改善版本的插件笔记,在一个项目下完成开发.测试.发布的全过程.https://www.cnblogs.com/adouwt/p/9655594.html --2019年1月15日更新. 反映问题: 执行 npm publish  报错,因为有些同学本地设置了 淘宝的npm 镜像源,npm 包发布到这个镜像源就有问题了,最简单的方式是 :发布时候指定地址 npm publish -registry=https://registry.np…
iview 是一个支持中大型项目的后台管理系统ui组件库,相对于一个后台管理系统的表格来说分页十分常见的 iview是一个基于vue的ui组件库,其中的iview-admin是一个已经为我们搭好的后天系统框架,十分方便. 下面我们就简单封装一个分页插件 首先引用iview的分页 <Page :total="total" :page-size="pageSize" :page-size-opts="[10]" show-sizer show-…
Vue 开发插件 我们可以先查看Vue的插件的开发规范 我们开发的之后期望的结果是支持 import.require 或者直接使用 script 标签的形式引入,就像这样: ps: 这里注意一下包的名字前缀是 unisoft ,组件的名字前缀是 uni import UniSoftUI from 'unisoft-ui'; // 或者 const CustomUI = require('unisoft-ui'); // 或者 <script src="..."></s…
总体分为2个步骤 一,先写好插件 二,发布到npm上面 一,写vue插件 vue有一个开放的方法install,在vue插件需要写在这个方法里面,在vue官网,里面说的很清楚,这个方法里面可以是全局方法,可以是指令还可以是挂载在原型的方法. 而vue在使用插件时候,需要首先use. 写好插件之后需要应用webpack打包.然后将代码统一推送到npm上面就可以了. 二,发布到npm上面 1)首选需要有个npm注册账号,这个可以直接在npm官方注册 2)在cmd上面切换路径到打包好的vue插件目录…
vue拿来写插件,会不会太那啥? 请跟我念,"不会,符合业务需求才是你的老板最想要的." 如何封装一个可以全局调用的vue插件 其原理其实相当简单,通过new Vue(vueComponentConstructor)您可以轻松的建立一个vue实例,在该实例上您可以操作方法.操作数据.监听数据变化,使用各种钩子,对开发者而言并没有任何阻碍. 我们生产了一个实例后该如何操作 请跟我来,写一个实现.首先,我们先写一个vue组件. // vue组件 A.vue <template>…
现在,在网页上播放视频已经越来越流行,但是网上的资料鱼龙混杂,很难找到自己想要的,今天小编就自己的亲身开发体验,手把手从零开始---封装一个vue视频播放器组件. 作为一个老道的前端搬砖师,怎么可能会一心闭门造车呢?还是先去网上找找轮子吧 经过在网上不断的查阅之后,我最终选择了video.js这个轮子,作为我的播放器.好,现在轮子找好了,乍一看,天,好像有点丑.不着急,我再来把它美化美化(二次封装). 引入video.js 安装 //安装video.js插件 npm install video.…
前言 在此之前,你需要去npm官网注册一个属于自己的账号,记住自己的账户名以及密码.邮箱,后面会用的到.第一步,安装webpack简易框架 vue init webpack-simple marquee 这里会用到vue init 命令,如果你的cli版本是3或者以上,那么在此之前你需要安装vue/cli-init npm install -g @vue/cli-init vue init 的运行效果将会跟 vue-cli@2.x 相同 第二步,封装Vue插件1.安装完成后,会出现以下目录即可成…
npm: Nodejs下的包管理器. webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资源的合并和打包. vue-cli: 用户生成Vue工程模板.(帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要 npm install就可以安装) [一]mac检查是否安装node.js nvm --version => node -v =>v10.7.0 [二]安装web-pack -g cnpm install…
需求背景 最近在项目中遇到了一个类似Collapse的交互需求,因此到github上找了一圈关于Vue Collapse的相关轮子,但是多少都有些问题.有的是实现问题,例如vue2-collapse,伸缩部分采用max-height指定动画,存在缺陷:还有的是扩展性问题,遇到定制场景比较棘手.因此,决定自己撸一个Collapse组件.从项目中的一个需求,到目前已将它开源并发布到npm,还是踩了许多坑的.代码虽然简单,但是过程却不太容易.因此这篇文章不是安利这款组件r-collapse-vue,仅…
自己编写并发布一个Vue组件 1. 几种开源协议的介绍 https://blog.csdn.net/techbirds_bao/article/details/8785413 2.开始编写组件 新建plugin文件夹: 指定 组件.入口文件和package.json文件, 看一下各个文件内容: 1.package.json 是npm init生成的: 2.loading.vue 是编写的组件文件: 在loading.js中, 使用了 3.loading.js 是指定的入口文件: import L…
首先用 vue create创建一个项目 当前的项目目录是这样的: 首先需要创建一个 packages 目录,用来存放组件 然后将 src 目录改为 examples 用作示例 二.修改配置 启动项目的时候,默认入口文件是 src/main.js 将 src 目录改为 examples 之后,就需要重新配置入口文件 在根目录下创建一个 vue.config.js 文件 // vue.config.js module.exports = { // 将 examples 目录添加为新的页面 page…
今天我们来自己动手用实现一个message插件: Vue.js 的插件应该暴露一个 install 方法.这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象: //message.vue<template> <transition name="msg-fade"> <div class="message" :class="type" v-show="visible"> &…
1. 前言 最近在学习 Webpack 相关的原理,以前只知道 Webpack 的配置方法,但并不知道其内部流程,经过一轮的学习,感觉获益良多,为了巩固学习的内容,我决定尝试自己动手写一个插件. 这个插件实现的功能比较简单: 默认清除 js 代码中的 console.log 的打印输出: 可通过传入配置,实现移除 console 的其它方法,如 console.warn.console.error 等: 2. Webpack 的构建流程以及 plugin 的原理 2.1 Webpack 构建流程…
1.新建文件夹在终端打开执行 npm init -y 生成package.json如下,注意如果要发布到npm,name不能有下划线,大写字母等 { "name": "vuecomponentdi", "version": "1.0.0", "description": "", "main": "index.js", "scripts&q…
1.效果预览 2.用到的知识 主要利用SVG的stroke-dasharray和stroke-dashoffset这两个属性. 在看下面文章之前,你需要了解 <!DOCTYPE html> <html> <head> <title>svg demo</title> <style type="text/css"> #line{ transition: all 2s; stroke-dasharray:300,320;…
JavaRebel是一个JVM插件(-javaagent),能够即时重载java class更改,因此不需要重新部署一个应用或者重启容器,节约开发者时间. JavaRebel 2.0的新特征: 改变了方法体 改变了class的结构,包括新增的方法,域,更改/添加注释,接口…… 更改了对Spring, Guice, Wicket, Stripes, Tapestry 4 和 Struts2的配置,使用开放的API. 启动性能更高 更好的兼容性 New and Noteworthy in JavaR…
关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 热爱vue开发的同学肯定知道awesome-vue 这个github地址,里面包含了数以千计的vue开源插件,而这些插件大都来自第三方开发者们,是他们为vue社区提供了大量的技术支持和解决方案.本文立足vue开源的理念,主要为vue开发者讲解编写vue插件的方法和步骤,通过理论与实践相结合的方式来加深大家对vue插件编写的认识. vue插件介绍 1. 插件与组件 在讲解插件之前,我们首先来了解下v…
什么是脚手架 在项目比较多而且杂的环境下,有时候我们想统一一下各个项目技术栈或者一些插件/组件的封装习惯,但是每次从零开发一个新项目的时候,总是会重复做一些类似于复制粘贴的工作,这是一个很头疼的事情,所以各种各样的脚手架应用而生. 脚手架也就是为了方便我们做一些重复的事情,快速搭建一个基本的完整的项目结构.例如:vue-cli, react-cli, express-generator 以vue-cli为例 1.全局安装vue-cli npm install vue-cli -g 2.然后在终端…