【面试题】:前端怎么实现组件的封装和上传

简介: 前端如何实现组件的封装以及上传

1.创建空白文件夹并安装依赖

创建 package.json  npm init -y 
安装 vue-loader    npm install vue-loader
安装 webpacl webpack-cli    npm install webpacl webpack-cli -D

2.创建 src 目录及文件

创建src目录
在src目录下创建components文件夹来存放我们的组件
在src目录下创建index.js入口文件
在components文件夹下创建testH1.vue组件

3.编写我们的组件 testH1.vue

<template>
    <h1 class="test-h1-box">
        <slot>测试文字</slot>
    </h1>
</template>

<script>
export default {
    
    name: 'testH1'
}
</script>

<style>
.test-h1-box{
    
    background: red;
    color: green;
    text-align: center
}
</style>

4.编辑 src 目录下的入口文件 index.js

// 引入组件
import sliderVerify_vue from './components/index.vue'

// 创建 install 函数
// vue.use 会默认查找并调用 install 函数
const SliderVerify = {
   
    install: (Vue) => {
   
        // 注意:第一个参数是组件名称,我们在页面引用时用到
        Vue.component(sliderVerify_vue.name, sliderVerify_vue)
    }
}

// 暴露 install 函数
export default SliderVerify;

5.在 testH1 目录下创建webpack.config.js,同 package.json 同级

const path = require('path')
module.exports = {
   
    devtool: "source-map",
    // 模式
    // mode: 'development', // 开发模式 生成普通 js 文件
    mode: 'production', // 生产模式 生成 .min.js 压缩文件
    // 入口
    entry: path.join(__dirname, './src/index.js'),
    // 出口
    output: {
   
        path: path.resolve(__dirname, 'dist'),
        publicPath: path.resolve(__dirname, 'dist'),
        // filename: 'testH1.js', // 生成的文件名 对应 开发模式
        filename: 'testH1.min.js', // 生成的文件名 对应 生产模式
        libraryTarget: 'umd', // 支持 ems / commontjs / requirejs 规范
        // libraryTarget: 'amd' // 支持 requirejs 规范
        umdNamedDefine: true
    },
    module: {
   
        rules: [{
   
            test: /\.vue$/,
            loader: 'vue-loader'
        }]
    }
}
打包
打包命令 npx webpack

6.编辑 package.json 文件

{
   
    "name": "test-h1",
    "version": "1.0.0",
    "description": "自定义 h1 标签",
    "main": "dist/testH1.min.js",
    "scripts": {
   
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": [
        "H1",
        "标签",
        "vue",
        "vue插件"
    ],
    "author": "Mr.test",
    "license": "MIT",
    "devDependencies": {
   
        "vue-loader": "^14.2.4",
        "webpack": "^5.21.2",
        "webpack-cli": "^4.5.0"
    }
}

7.编辑 README.md

## 安装
npm install testH1

## 引入
import testH1 from 'testH1'

## 全局注册
Vue.use(testH1);

## 页面使用
<testH1> 文字内容 </testH1>

8.发布至 NPM

在npm官网注册账号:用户名 邮箱 密码
npm配置的中央仓库应是npm,如不是则运行以下命令  npm config set registry https://registry.npmjs.org/
添加用户,配置
npm addUser
依次添加:userName、password 和 Email
只需添加一次即可
上传至 npm   npm publish
相关文章
|
3月前
|
JavaScript 前端开发 开发者
哇塞!Vue.js 与 Web Components 携手,掀起前端组件复用风暴,震撼你的开发世界!
【8月更文挑战第30天】这段内容介绍了Vue.js和Web Components在前端开发中的优势及二者结合的可能性。Vue.js提供高效简洁的组件化开发,单个组件包含模板、脚本和样式,方便构建复杂用户界面。Web Components作为新兴技术标准,利用自定义元素、Shadow DOM等技术创建封装性强的自定义HTML元素,实现跨框架复用。结合二者,不仅增强了Web Components的逻辑和交互功能,还实现了Vue.js组件在不同框架中的复用,提高了开发效率和可维护性。未来前端开发中,这种结合将大有可为。
155 0
|
25天前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
61 1
|
25天前
|
前端开发 JavaScript 开发者
揭秘前端高手的秘密武器:深度解析递归组件与动态组件的奥妙,让你代码效率翻倍!
【10月更文挑战第23天】在Web开发中,组件化已成为主流。本文深入探讨了递归组件与动态组件的概念、应用及实现方式。递归组件通过在组件内部调用自身,适用于处理层级结构数据,如菜单和树形控件。动态组件则根据数据变化动态切换组件显示,适用于不同业务逻辑下的组件展示。通过示例,展示了这两种组件的实现方法及其在实际开发中的应用价值。
33 1
|
29天前
|
缓存 前端开发 JavaScript
前端serverless探索之组件单独部署时,利用rxjs实现业务状态与vue-react-angular等框架的响应式状态映射
本文深入探讨了如何将RxJS与Vue、React、Angular三大前端框架进行集成,通过抽象出辅助方法`useRx`和`pushPipe`,实现跨框架的状态管理。具体介绍了各框架的响应式机制,展示了如何将RxJS的Observable对象转化为框架的响应式数据,并通过示例代码演示了使用方法。此外,还讨论了全局状态源与WebComponent的部署优化,以及一些实践中的改进点。这些方法不仅简化了异步编程,还提升了代码的可读性和可维护性。
|
1月前
|
前端开发 JavaScript
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
180 1
|
1月前
|
前端开发 JavaScript 开发者
Web组件:一种新的前端开发范式
【10月更文挑战第9天】Web组件:一种新的前端开发范式
42 2
|
1月前
|
前端开发 JavaScript Go
前端开发趋势:从响应式设计到Web组件的探索
【10月更文挑战第1天】前端开发趋势:从响应式设计到Web组件的探索
38 3
|
2月前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
3月前
|
Android开发 iOS开发 C#
Xamarin:用C#打造跨平台移动应用的终极利器——从零开始构建你的第一个iOS与Android通用App,体验前所未有的高效与便捷开发之旅
【8月更文挑战第31天】Xamarin 是一个强大的框架,允许开发者使用单一的 C# 代码库构建高性能的原生移动应用,支持 iOS、Android 和 Windows 平台。作为微软的一部分,Xamarin 充分利用了 .NET 框架的强大功能,提供了丰富的 API 和工具集,简化了跨平台移动应用开发。本文通过一个简单的示例应用介绍了如何使用 Xamarin.Forms 快速创建跨平台应用,包括设置开发环境、定义用户界面和实现按钮点击事件处理逻辑。这个示例展示了 Xamarin.Forms 的基本功能,帮助开发者提高开发效率并实现一致的用户体验。
154 0
|
3月前
|
前端开发 UED 开发者
React组件优化全攻略:深度解析让你的前端应用飞速运行的秘诀——从PureComponent到React.memo的彻底性能比较
【8月更文挑战第31天】在构建现代Web应用时,性能是提升用户体验的关键因素。React作为主流前端库,其组件优化尤为重要。本文深入探讨了React组件优化策略,包括使用`PureComponent`、`React.memo`及避免不必要的渲染等方法,帮助开发者显著提升应用性能。通过实践案例对比优化前后效果,不仅提高了页面渲染速度,还增强了用户体验。优化React组件是每个开发者必须关注的重点。
68 0

热门文章

最新文章

下一篇
无影云桌面