storybook构建vue组件
storybook脚手架:https://github.com/zw1371/storybook-cli
最近在研究业务型组件的使用,因为在单独开发组件的时候需要调试,所以为每一个组件都编写一个webpack开发环境,然后上传上去为了其他人可以直接使用又把webpack上传上去,这样会有两个问题:
1:每个项目都要弄一个webpack开发环境 即使是只需要复制代码
2:把开发环境上传上去类似与上传java代码把eclipse上传上去一样,这样感觉不是很合适
后来听到大神同事介绍storybook,所以研究了一下:
官网:https://storybook.js.org/basics/guide-vue/
下面把storybook的vue使用翻译一下:针对vue的故事版介绍
也许你已经尝试使用快速入门向导(quick start guide)来构建你的故事板项目,如果你想手动的(manually)创建故事版,请看下文 这也会帮助你理解故事版的工作原理 开始吧!
故事版自带webpack和开发环境
这个storybook脚手架和vue脚手架非常类似(similar),但是他又允许你配置其他一些可能这个脚手架不满足的东西 在这里,跟随我一起开始vue的storybook故事版构建吧 步骤(Table of contents)
Add @storybook/vue
Add vue and babel-core
Create the NPM script
Create the config file
Write your stories
Run your Storybook 1:Add @storybook/vue
首先,你需要导入@storybook/vue到你的项目中,运行命令: npm i --save-dev @storybook/vue
2:Add vue, babel-core, and babel-loader
执行命令:
npm i --save vue
npm i --save-dev babel-loader vue-loader vue-template-compiler
npm i --save-dev @babel/core babel-preset-vue
3:Create the NPM script
将下面的npm脚本添加到你的项目的package.json文件中,为了(in order to)可以执行storybook命令: {
"scripts": {
"storybook": "start-storybook -p 9001 -c .storybook"
}
} 4:Create the config file Storybook可以以多种不同的(several different)方式进行配置.这就是为什么我们需要一个配置目录,在上面的脚本中我们添加了一个-c的选项的时候提到(mentioning).storybook,他就是配置目录 下面你要做三件事: 1:引入并注册vue组件,就像你平常那样做的一样,
2:对于vue创建,你同样需要使用vue.use去注册他们
3:引入你的stories 下面是一个例子,关于配置文件.storybook/config.js的: import { configure } from '@storybook/vue'; import Vue from 'vue';
import Vuex from 'vuex'; // Vue plugins // Import your custom components.
import Mybutton from '../src/stories/Button.vue'; // Install Vue plugins.
Vue.use(Vuex); // Register custom components.
Vue.component('my-button', Mybutton); function loadStories() {
// You can require as many stories as you need.
require('../src/stories');
} configure(loadStories, module); 这个例子注册了Button组件,导入了Vuex,然后从../stories/index.js里面loaded你的故事版 所有的组件注册和插件引入必须在configure()方法之前声明好 这个stories文件夹仅仅是一个例子,你可以从任何地方引入你的stories,我们认为stories文件最好尽可能靠近资源文件
5:Write your stories 下面开始写你的stories
现在你可以写一些stories在../stories/index.js文件夹中,就像:
import Vue from 'vue';
import { storiesOf } from '@storybook/vue';
import MyButton from './Button.vue';
storiesOf('MyButton', module)
.add('story as a template', () => '<my-button :rounded="true">story as a function template</my-button>')
.add('story as a component', () => ({
components: { MyButton },
template: '<my-button :rounded="true">rounded</my-button>'
}));
你可以多次使用storiesOf来创建你的组件,每一个storiesOf都是单独对应一个组件,关于storiesOf的组件使用有两种形态:
story as a template
story as a component
6:Run your Storybook
现在万事俱备,来运行你的项目吧,执行命令:
npm run storybook
现在你对组件的任何修改都会实时更新,这得益于webpack热更新的帮助
storybook构建vue组件的更多相关文章
- 仿ElementUI构建自己的Vue组件库用babel-plugin-component按需加载组件及自定义SASS主题
最近使用ElementUI做项目的时候用Babel的插件babel-plugin-component做按需加载,使得组件打包的JS和CSS包体积大大缩小,加载速度也大大提升,所有想模仿做一个组件库也来 ...
- webpack单独构建scss文件与.vue组件里构建scss的一个坑
在入口main.js里构建scss是通过引入模块的方式 import './assets/_reset.scss'; import './assets/_flex.scss'; import './a ...
- 手把手教你如何构建Vue前端组件库
在前端开发中可能会遇到将相同的功能模板集合成一个组件,供他人调用,这样可以减少重复造轮子,也可以节约人力.财力,更能够提高代码的可维护度:下面将通过详细的步骤教你如何构建一个Vue前端组件. 1.在本 ...
- 基于Vue简易封装的快速构建Echarts组件 -- fx67llQuickEcharts
fx67llQuickEcharts A tool to help you use Echarts quickly! npm 组件说明 这本来是一个测试如何发布Vue组件至npm库的测试项目 做完之后 ...
- vue2升级vue3:Vue Demij打通vue2与vue3壁垒,构建通用组件
如果你的vue2代码之前是使用vue-class-component 类组件模式写的.选择可以使用 https://github.com/facing-dev/vue-facing-decorator ...
- JS组件系列——又一款MVVM组件:Vue(二:构建自己的Vue组件)
前言:转眼距离上篇 JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查) 已有好几个月了,今天打算将它捡起来,发现好久不用,Vue相关技术点都生疏不少.经过这几个月的时间,Vue ...
- webpack构建vue单文件组件
1.安装vue-loader和vue-template-compiler npm i vue-loader vue-template-compiler --save-dev 2.配置webpack.c ...
- 如何快速构建React组件库
前言 俗话说:"麻雀虽小,五脏俱全",搭建一个组件库,知之非难,行之不易,涉及到的技术方方面面,犹如海面风平浪静,实则暗礁险滩,处处惊险- 目前团队内已经有较为成熟的 Vue 技术 ...
- webpack构建vue项目(再谈配置)
webpack配置起来确实麻烦,这不,之前用刚配好了vue1+的版本,结果在(部分)安卓机上测试,发现存在开启热加载(dev-server)的情况下不能识别vue语法的问题,试了很多方法,都没能很好的 ...
随机推荐
- VS工具箱中添加DevExpress控件
关闭所有VS进程: ①使用控制台进入DevExpress安装目录: D:\DevExpress\Components\Tools\ ②添加DevExpress控件:ToolboxCreator.exe ...
- php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别以及REQUEST_URI的讲解
今天再次遇到了这个问题通过$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']获取域名及请求的URL的问题,便再次百度了,发现没学习一次都有新的知识,便分享出 ...
- work-7.2
安装ubuntu,jdk ,git,maven,Intellij. 配置GIT时,需要将在本地生成的公钥粘贴到服务端. 先占个座,具体过程待补充. -------------------------- ...
- 纪念一下学写pipeline时脑子里的坑
用的是filespipeline,用的存储地址是images的地址 测试煎蛋ooxx首页,shell测试的时候返回很多列表,但是实际爬的时候一直只返回一条,很烦,一直测一直测,就是不行,后来才发现,首 ...
- 多个for循环嵌套会影响速度
在复现Meta-SR的过程中,发现如果嵌套多个for 循环会使速度过慢.这是下面实验得出的结论: import time t1 = time.time() a = range(3000) b = ra ...
- react context跨组件传递信息
从腾讯课堂看到的一则跨组件传递数据的方法,贴代码: 使用步骤: 1.在产生参数的最顶级组建中,使用childContextTypes静态属性来定义需要放入全局参数的类型 2.在父组件中,提供状态,管理 ...
- java面向对象总结(一)
1. 对象的概念及面向对象的三个基本特征 面向对象的三大核心特性 面向对象开发模式更有利于人们开拓思维,在具体的开发过程中便于程序的划分,方便程序员分工合作,提高开发效率.面向对象程序设计有以下优点. ...
- webpack的常识概念
它的优势: 递归解析依赖,支持支持es module规范.commonJS.AMD规范. 支持代码分割. loader: css-loader\style-loader\less-loader\sas ...
- 根据字符串导入包使用-----importlib
import importlibo = importlib.import_module("xx.oo")s2 = "Person"the_class = get ...
- 旧版本firefox添加扩展addons的地址
不要在 firefox 本身的addons 中去查找, 搜索, 那个是搜索不到的, 因为那个是针对 最新版的, 旧版本的很多插件都不能用, 被移除了, 要在 那个专门 提供 插件的站点中去寻找扩展 h ...