当前位置: 首页 > news >正文

深圳网站建设公司那家好/网站seo关键词排名

深圳网站建设公司那家好,网站seo关键词排名,沈阳app制作网站建设推,自适应网站的代表Vue是一套用于构建用户界面的渐进式框架,目前有越来越多的开发者在学习和使用。虽然笔者有近2年没有从事vue的开发了,但平时一直在关注vue的更新和发展,笔者一直认为技术团队的组件化之路重点在于基础架构的搭建以及组件化的设计思想&#xf…
Vue是一套用于构建用户界面的渐进式框架,目前有越来越多的开发者在学习和使用。虽然笔者有近2年没有从事vue的开发了,但平时一直在关注vue的更新和发展,笔者一直认为技术团队的组件化之路重点在于基础架构的搭建以及组件化的设计思想,我们完全可以采用不同的框架实现类似的设计,所以透过现象看本质,思想才是最重要的。本文主要教大家通过使用vue-cli3 一步步搭建一个组件库并发布到npm上,但笔者认为重点不在于实现搭建组件库的具体方式,而在于设计组件库的思想和取舍。38066f3eb656b0ab4ea566908da78d53.png本文假设大家对vue有一定的了解,并熟悉vue-cli3的配置。首先我们在搭建组件库的时候,一定要清楚是否有必要搭建,如果项目是一次性的或者不同项目中不存在可复用的组件,那么搭建组件库是没有必要的。反之如果团队存在多个不同的项目都会使用一致的组件设计规范,那么搭建组件库无疑是不二选择。接下来我们直接开始实现组件库的搭建。

1、安装vue-cli3并创建一个项目

首先我们先安装开发必要的工具集,并创建一个项目:
yarn global add @vue/cli// 创建项目
vue create vui
我们安装完依赖并进入项目启动服务后vue-cli3会自动给我们展示一个默认页面,关于vue的组件库目录结构,笔者参考element的来组织,大家也可以按照自己团队的风格来设计.首先我们看看原来的目录结构:11ecb92879cc6e65f3dacc6af03be6d3.png我们做如下调整:8637cdf14a4cf50e62360a5c9d88d5ca.png我们将src重命名为examples, 并添加packages目录,用来存放我们的自定义组件. 但是cli默认会启动src下的服务,如果目录名变了,我们需要手动修改配置,vue-cli3中提供自定义打包配置项目的文件,我们只需要手动创建vue.config.js即可.我们具体修改如下:
module.exports = {pages: {index: {entry: 'examples/main.js',template: 'public/index.html',filename: 'index.html'
}
},// 扩展 webpack 配置,使 packages 加入编译
chainWebpack: config => {
config.module
.rule('js')
.include
.add('/packages')
.end()
.use('babel')
.loader('babel-loader')
}
}
首先修改入口文件地址为examples下的main.js,其次将packages加入打包编译任务中.

2、编写组件代码

首先我们拿一个Button组件来示范,这里只实现一个比较简单的组件,如果大家想了解更加详细的组件设计方法和思路,可以参考笔者的组件设计相关的文章。首先我们先在packages目录下新建一个Button目录,然后src里存放组件的源代码:
<template><div class="x-button"><slot>slot>div>template><script>export default {name: 'x-button',props: {type: String
}
}script><style scoped>.x-button {display: inline-block;padding: 3px 6px;background: #000;color: #fff;
}style>
vue和react组件设计中会大量应用插槽机制,比如vue里的slot标签, react的children等,所以这一块大家可以重点关注一下。 我们在在Button的index.js里编写如下代码来作为vue的组件安装:
// 导入组件,组件必须声明 nameimport XButton from './src'// 为组件提供 install 安装方法,供按需引入
XButton.install = function (Vue) {
Vue.component(XButton.name, XButton)
}// 导出组件export default XButton
Button的组件结构如下:9f13a488bfbe86ebd6f9a6794478cac4.png接下来我们在packages的入口文件中导入组件并安装导出:
// 导入button组件import XButton from './Button'// 组件列表const components = [
XButton
]// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,那么所有的组件都会被注册const install = function (Vue) {// 判断是否安装if (install.installed) return// 遍历注册全局组件
components.map(component => Vue.component(component.name, component))
}// 判断是否是直接引入文件if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue)
}export default {// 导出的对象必须具有 install,才能被 Vue.use() 方法安装
install,// 以下是具体的组件列表
XButton
}
上面的install步骤和导出步骤非常关键,大家需要按照规则配置,这也是vue组件注册的规则之一。详细文档大家可以看vue官网的组件篇。

3、测试代码

我们要想看到自己写的组件效果,可以将组件导入到examples目录下的main.js中,其本质就是一个项目的开发目录,我们只需要按照如下方式导入即可:
// examples/main.jsimport Vue from 'vue'import App from './App.vue'// 导入组件库import xui from '../packages'// 注册组件库
Vue.use(xui)
Vue.config.productionTip = falsenew Vue({render: h => h(App),
}).$mount('#app')
这种方式是全局导入,至于按需导入,完全可以采用element的方式来配置,对于业务组件来说,一般项目中都是使用的到,所以全局导入比较合适,作为UI库来说,按需导入可能更适合。接下来我们就可以在项目中使用我们的组件了:
<div id="app"><img alt="Vue logo" src="./assets/logo.png"><x-button type="primary">buttonx-button>div>template><script>export default {name: 'App',components: {
}
}script><style>#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;
}style>
效果如下:0ac7c02117be295e604b63f75c480301.png大家也可以采用elemnt开发更加美观的说明文档。

4、配置package.json文件

作为一个组件库,我们必须按照npm的发包规则来编写我们的package.json, 我们先来解决组件库打包的问题,首先我们需要让脚手架编译我们的组件代码,并输出到指定目录下,我们按照发包规范一般会输出到lib目录下,代码如下:
"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build","lib": "vue-cli-service build --target lib --name xui --dest lib packages/index.js"
}
我们的lib脚本就是用来打包packages的组件代码到lib目录下,文件名为以--name指定的名称前缀开头,我们执行脚本会输出类似如下代码:51bf1fca72c438da0c539472ee4de5e2.png其次我们需要编写package文件的description,keywords等,具体介绍如下:
  • description 组件库的描述文本
  • keywords 组件库的关键词
  • license 许可协议
  • repository 组件库关联的git仓库地址
  • homepage 组件库展示的首页地址
  • main 组件库的主入口地址(在使用组件时引入的地址)
  • private 声明组件库的私有性,如果要发布到npm公网上,需删除该属性或者设置为false
  • publishConfig 用来设置npm发布的地址,这个配置作为团队内部的npm服务器来说非常关键,可以设置为私有的npm仓库
还有很多配置具体要看团队的要求和规范,这里就不一一举例了.具体配置源码可参考地址 xui.

5、发布到npm

发布到npm的方法也很简单, 首先我们需要先注册去npm官网注册一个账号, 然后控制台登录即可,最后我们执行npm publish即可.具体流程如下:
// 本地编译组件库代码
yarn lib// 登录
npm login// 发布
npm publish// 如果发布失败提示权限问题,请执行以下命令
npm publish --access public
发布之后效果如下:b49217eccc448f52d226e4346c314d9a.png之后我们就可以通过如下方式使用了:
import vui from '@alex_xu/vui'import '/@alex_xu/vui/lib/vui.css'
Vue.use(vui)

关于npm相关的知识笔者在这里简单提一下,大家可以参考学习.

1. .npmignore 配置文件

.npmignore配置文件类似于 .gitignore 文件,如果没有 .npmignore,会使用.gitignore来取代他的功能。

2. npm发包的版本管理

npm的发包遵循语义化版本,一个版本号格式如下:Major.Minor.Patch,每一部分具体介绍如下:
  • Major 表示主版本号,做了不兼容的API修改时需要更新
  • Minor 表示次版本号,做了向下兼容的功能性需求时需要更新
  • Patch 表示修订号, 做了向下兼容的问题修正时需要更新
对应的npm也提供了脚本帮我们实现自动更新版本号,如下:
npm version patch
npm version minor
npm version major
还有更加深入的知识比如版本的tag化这些,大家感兴趣也可以研究一下. 本文的组件库搭建参考element的目录组织方式,大家也可以直接采用element或者其他开源组件库的脚手架来实现。

7f248b5e7f7fb0e82e69ca4760492e51.png

往期精选:Vue3中令人兴奋的新功能高并发优化之页面缓存与URL缓存终于轮到Vue来带给React灵感了?294c65cc5a4e12b0812ef704f4783ec6.png
http://www.lbrq.cn/news/1580095.html

相关文章:

  • 网站开发公司招聘/引流推广广告怎么写
  • 鹰潭门户网站建设费用/阐述网络营销策略的内容
  • 免费发帖推广平台有哪些/深圳seo优化seo优化
  • tp框架做的网站/链接买卖
  • 关于建设网站的报告/seo优化方法网站快速排名推广渠道
  • 威海建设公司网站/网站收录查询平台
  • 香河建设局网站/广东省各城市疫情搜索高峰进度
  • 网站内移动的图片怎么做的/自己接单的平台
  • 快站app制作教程/网络建站公司
  • python网站开发书籍推荐/龙岩网站推广
  • 用angular做的网站链接/2018十大网络营销案例
  • 南宁良庆网站建设/艾滋病多长时间能查出来
  • 日本平面设计网站有哪些/网络推广用什么软件好
  • 信誉好的网站建设案例/点击精灵seo
  • 公众号的微网站怎么做/域名查询万网
  • 备案时网站建设方案书/青岛seo整站优化招商电话
  • 建设一网站有什么用/外贸海外推广
  • 网站后台更新缓存失败/优化大师电脑版官网
  • 在线做网站图标/交友网站有哪些
  • 宁波做网站的大公司排名/百度搜索量排名
  • 企业网站开发外包公司/2023新一轮病毒叫什么名字
  • 田园综合体建设网站/百度精准获客平台
  • 杨凯做网站/怎么优化标题和关键词排名
  • 无锡高端网站制作/绍兴百度seo排名
  • 单页面网站制作技术/搜索引擎整合营销
  • 请人帮忙做淘宝网站多少钱/营销推广文案
  • 无锡朝阳网站推广/百度推广营销
  • 怎样用php做动态网站/网络媒体发稿
  • 大地保险网站/东莞seo外包公司
  • 基础微网站开发可信赖/seo 优化
  • ERA5---MATLAB处理水汽数据与臭氧数据的读取与重采样-重复性工作
  • Android 16 的用户和用户组定义
  • DNS(域名系统)
  • 代币化股票的崛起:比特币安全吗?
  • MySQL 处理重复数据详细说明
  • 元数据管理与数据治理平台:Apache Atlas 分类传播 Classification Propagation