电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

vue制作toast組件npm包示例代碼

瀏覽:106日期:2022-11-09 14:29:12

之前寫了一個ui組件,但是感覺沒必要的東西太多了,所以做了一下優化

介紹

之前制作的小組件是用webpack-simple搭建的,但是左思右想感覺沒必要的東西太多太多,所以又寫了一個清潔版的,直接開整

開始

建立一個空文件夾, 然后直接終端運行 npm init建立完之后會生成一個 package.json 文件,內容如下

vue制作toast組件npm包示例代碼

注意:name是之后要發的npm包的名字 不要重名,建議去npm先搜一下有沒有在取

接下來對 package.json 文件添加所需模塊,

{ 'name': 'sever-ui', 'version': '1.0.0', 'description': '一個移動端ui小組件', 'main': 'index.js', 'scripts': { 'test': 'echo 'Error: no test specified' && exit 1', 'start': 'webpack-dev-server --hot --inline', 'build': 'webpack --display-error-details --config webpack.config.js' }, 'author': 'sever27', 'license': 'ISC', 'devDependencies': { 'babel-core': '^6.26.0', 'babel-loader': '^7.1.2', 'babel-plugin-transform-object-rest-spread': '^6.26.0', 'babel-plugin-transform-runtime': '^6.23.0', 'babel-polyfill': '^6.26.0', 'babel-preset-es2015': '^6.24.1', 'css-loader': '^0.28.7', 'es6-promise': '^4.1.1', 'vue': '^2.5.9', 'vue-hot-reload-api': '^2.2.4', 'vue-html-loader': '^1.2.4', 'vue-style-loader': '^3.0.3', 'vue-template-compiler': '^2.5.9', 'webpack': '^3.9.1', 'webpack-dev-server': '^2.9.5' }}

配置修改完成之后 終端運行 npm install 安裝依賴。

接著在目錄下創建文件夾 src及文件等,這是我的目錄結構

vue制作toast組件npm包示例代碼

對應文件內容src/main.vue

<template> <div v-if='visible' class='sever-toast'> <span >{{msg}}</span> </div></template><script>export default { name:'sever-toast', data(){ return { visible:false, msg:’默認值’, duration:’3000’, } }, methods:{ close(){ setTimeout(() => { this.visible = false; }, this.duration); } }, mounted(){ }}</script><style > .sever-toast{ display: flex; justify-content: center; align-items: center; height: 100%; position: fixed; top:0; bottom:0; left:0; right:0; } .toast-msg{ color: #ffffff; background:rgba(0,0,0,0.5); padding:0.3rem; border-radius: 0.1rem; font-size: 0.34rem; }</style>

src/main.js

import Vue from ’vue’;import Main from ’./main.vue’let MmToast = Vue.extend(Main);let instance ;const Toast = function(options) { instance = new MmToast({ data: options }); instance.$mount(); document.body.appendChild(instance.$el); instance.visible = true; return instance.close()}export default Toast

Toast/index.js

import Toast from ’./src/main.js’export default Toast

index.js

import Toast from ’./Toast/index.js’ const install = function(Vue) { Vue.prototype.$toast = Toast}console.log(typeof window !== ’undefined’ , window.Vue)if (typeof window !== ’undefined’ && window.Vue) { install(window.Vue);}export default { install, Toast,}

接下來修改webpack.dev.conf.js

const path = require('path');const webpack = require('webpack');const uglify = require('uglifyjs-webpack-plugin');module.exports = { devtool: ’source-map’, entry: './src/index.js',//入口文件,src目錄下的index.js文件, output: { path: path.resolve(__dirname, ’./dist’),//輸出路徑,就是新建的dist目錄, publicPath: ’/dist/’, filename: ’sever-ui.min.js’, libraryTarget: ’umd’, umdNamedDefine: true }, module: { rules: [{test: /.vue$/,loader: ’vue-loader’ }, {test: /.less$/,use: [ { loader: 'style-loader' }, { loader: 'css-loader' }, { loader: 'less-loader' }] }, {test: /.js$/,exclude: /node_modules|vue/dist|vue-router/|vue-loader/|vue-hot-reload-api//,loader: ’babel-loader’ }, {test: /.(png|jpg|gif|ttf|svg|woff|eot)$/,loader: ’url-loader’,query: { limit: 30000, name: ’[name].[ext]?[hash]’} } ] }, plugins: [ new webpack.DefinePlugin({ 'process.env': {NODE_ENV: JSON.stringify('production') } }) ]}

好了 一個簡單的toast組件已經完成了接下來是打包 執行 npm run build 生成文件

vue制作toast組件npm包示例代碼

接著修改package.json

'main':'./dist/sever-ui.min.js',

然后我們就可以上傳到npm了執行

npm loginnpm publish

接下來讓我們看看效果

npm install sever-ui

引入

vue制作toast組件npm包示例代碼

<template> <div class='home'> <div @click='Toast()'>點擊Toast</div> </div></template><script>export default { name: ’Home’, components: { }, methods:{ Toast(){ this.$toast({msg:’哈哈哈哈哈哈’}) } }}</script>

vue制作toast組件npm包示例代碼

修改

優化

只是一個toast感覺直接輸入內容,所以做了一下修改main.js

import Vue from ’vue’;import Main from ’./main.vue’let MmToast = Vue.extend(Main);let instance ;const Toast = function(options) { if( typeof options === ’string’){ options = { msg:options } } instance = new MmToast({ data: options }); instance.$mount(); document.body.appendChild(instance.$el); instance.visible = true; return instance.close()}export default Toast

這樣 就可以直接使用 this.$toast(’toast內容’)

到此這篇關于vue制作一個toast組件npm包的文章就介紹到這了,更多相關vue toast組件npm包內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
主站蜘蛛池模板: 会议会展活动拍摄_年会庆典演出跟拍_摄影摄像直播-艾木传媒 | 耐磨陶瓷,耐磨陶瓷管道_厂家-淄博拓创陶瓷科技 | 便携式高压氧舱-微压氧舱-核生化洗消系统-公众洗消站-洗消帐篷-北京利盟救援 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 车件|铜件|车削件|车床加工|五金冲压件-PIN针,精密车件定制专业厂商【东莞品晔】 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 不锈钢闸阀_球阀_蝶阀_止回阀_调节阀_截止阀-可拉伐阀门(上海)有限公司 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 安徽集装箱厂-合肥国彩钢结构板房工程有限公司 | 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 四川成都干燥设备_回转筒干燥机_脉冲除尘器_输送设备_热风炉_成都川工星科机电设备有限公司 | 重庆LED显示屏_显示屏安装公司_重庆LED显示屏批发-彩光科技公司 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | EFM 022静电场测试仪-套帽式风量计-静电平板监测器-上海民仪电子有限公司 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 齿式联轴器-弹性联轴器-联轴器厂家-江苏诺兴传动联轴器制造有限公司 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 祝融环境-地源热泵多恒系统高新技术企业,舒适生活环境缔造者! | 冷水机-冰水机-冷冻机-冷风机-本森智能装备(深圳)有限公司 | 钢丝绳探伤仪-钢丝绳检测仪-钢丝绳探伤设备-洛阳泰斯特探伤技术有限公司 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 智能案卷柜_卷宗柜_钥匙柜_文件流转柜_装备柜_浙江福源智能科技有限公司 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 复合土工膜厂家|hdpe防渗土工膜|复合防渗土工布|玻璃纤维|双向塑料土工格栅-安徽路建新材料有限公司 | 厌氧反应器,IC厌氧反应器,厌氧三相分离器-山东创博环保科技有限公司 | 智能终端_RTU_dcm_北斗星空自动化科技 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 硬度计_影像测量仪_维氏硬度计_佛山市精测计量仪器设备有限公司厂家 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 广西教师资格网-广西教师资格证考试网 | 结晶点测定仪-润滑脂滴点测定仪-大连煜烁 |