手把手教你搭建vue3.0项目架构

前言:

GitHub上我开源了vue-cli、vue-cli3两个库,文章末尾会附上GitHub仓库地址。这次把2.0的重新写了一遍,优化了一下。然后按照2.0的功能和代码,按照vue3.0的语法,完全重写了一遍。虽然名字叫cli,其实两个库都是基于vue-cli创建的。做这个的目的是为了工作中快速启动项目,毕竟切片打包、less、axios、vuex、router、UI框架、基础文件目录、权限,这些都是基操,当然项目不同,还是要做些调整的。这两个项目的master分支都是最基础的东西,里面还包含了几个自定义的组件。vue-cli3 单独切出来一个app分支,这个分支会不定时的添加一些功能,比如hightCharts的甘特图,three.js,用户可以自定义的大屏展示等等一些功能,现在还啥都没有,看时间吧,有时间就会更新,会优先写vue3.0 的,2.0 的再说吧。也希望大家能帮我完善这个库,毕竟为了快速启动项目才搭建的,自然越优秀越好。app分支也是希望能有一些好的功能模块案例,为大家拓展思路。

一、用 vue-cli 创建项目

npm uninstall vue-cli -g           卸载老版本cli
npm i @vue/cli -g                  安装新版本cli
npm install -g @vue/cli-init       安装cli
vue -V                             查看cli的版本号,注意大小写
vue create vue-cli                 创建vue3.0项目, 记得选择vue3

按上述步骤操作即可,我的vue-cli版本号是 4.5.11。这里注意一下,创建项目的的时候需要手动选择创建2.0还是3.0的项目,默认是2.0,脚手架是向下兼容的。

二、安装路由

npm install vue-router@4             安装路由,4.0版本的

我的路由版本是4.0.12

三、完善目录结构,创建配置文件vue.config.js

目录和vue.config.js都贴了一下,具体的还是去GitHub直接看源码,这里不多占用篇幅了。这里app.less设置了颜色变量,统一了整个系统的颜色,后期如果做主题,也方便维护。其中antd、vuex等后面再说。

四、安装ant-design-vue,安装less、安装dayjs

npm i --save ant-design-vue@next   安装 antd3.x的版本  3.0还在不断更新的阶段
npm install babel-plugin-import --save-dev    引入babel, 配置 babel.config 文件,antd组件的按需加载
npm install --save @ant-design/icons-vue  需要的话,引入antd的icon
npm install less --save  引入less
npm i less-loader@4.1.0   注意版本号
npm i style-resources-loader vue-cli-plugin-style-resources-loader -D  安装插件,vue.config.js 文件,增加less文件全局配置,主要配置全局变量
npm install dayjs --save 并全局配置下 dayjs, 如果报错,重装一下ant-design-vue,dayjs比moment更加轻量

UI框架我用了ant-design-vue,这个大家随意根据自己需求和喜好来。但是要提醒一下,antd目前2.0版本做了对vue3的支持,而且是稳定的,现在正在做3.0版本的升级,项目中用的都是是3.0的写法,稳定性有待考究。再就是因为antd需要dayjs,这里也用了dayjs,用法大同小异,但是他非常小。项目中用了antd的按需加载,不用的组件还是不要引入的好,有需要的在antdUse.js文件引入即可。按需加载的方法官方文档有详述,需要修改babel.config.js。antd3的icon变成了通过组件的形式引入,使用起来有点繁琐,也需要注意。

安装less的babel时,注意版本号,高版本的会报错。我这里定义了全局的less变量,统一项目的各级别字体大小、各种颜色等等

五、安装vuex、axios

npm install vuex@next --save   安装vuex,并配置
npm install axios   安装 axios,并做统一配置

axios没有什么变化。vuex建议详细看一下官方文档3.0到4.0的迁移文档。这里我简单列几个重要的,新版本中,用 createStore创建实例;通过 useStore 获取当前的vuex实例。具体写法看代码。

六、vue3的一些新语法

vue3参考了react hooks的实现方式,所以写法和编程思路很像,这里非常建议看一下尤雨溪大佬的这篇文章,点我跳转这里他对自己升级的前因后果做了很详细阐述,看完会对这次升级有比较清晰的认知。这次更新主要是对组件公共逻辑的提取复用和对单一组件逻辑组织做了很大的改动,当然根本动力还是对typescript的支持。ts是大势所趋。从我个人而言,这次改动很大,使vue3对新手来说,上手难度非常高。对程序员要求也提高了很多。很容易出现代码一锅粥,逻辑混乱的情况。呃 ...还有就是.value 和 props. 的写法太啰嗦,我是不是要求有点高了,手动狗头,哈哈。

但是,用多了之后你会这很好用、很方便。vue3.0数据流向很清晰、还保留了数据响应式的老优点。巴适得很啊。博主最开始是用react的,刚开始转用vue的时候很不习惯,有写法的原因,最大的还是数据不清晰,所有数据都绑定在this上,可读性低了好多。

。。。扯远了,回归正题,直接说说按照我的理解,vue3有哪些变化,应该怎么去用。

首先,vue3支持typescript了,鼓掌、撒花。。。建议学习一下,当然用不用都行,毫无影响。只能说ts作为js的超集,彻底斩断了js的放荡不羁爱自由,变得中规中矩起来。也让代码更加规范,更加可掌控。不过很有意思的是,vue3彻底斩断了vue2的条条框框,彻底释放自由了,变量、方法直接在setup里面定义,逻辑也都在里面编写,再也不需要像以前那样在规定的地方声明监听属性、声明方法了。这个项目都是用js写的,我的ts水平也一般,再就是怕大家看不习惯,毕竟现阶段ts的普及还是有点低的。

下面会列举一些变化,有源代码,有注释,直接拉项目跑一下的好,这里只是简单提一些关键的变化。

main.js文件。通过 createApp方法创建vue实例,通过app.config.globalProperties.实例原型上添加全局属性。可创建多实例,也不怕污染。

report.js文件。通过 defineComponent声明组件,配合 setup这个组合函数完成组件逻辑的开发,具体写法看源码report.js这个文件。

setup(props, context)这个组合函数,直接替代了vue2.0 computed watch 生命周期 methods等整一套写法。所有的逻辑,都在这个函数里面实现。所以,建议统一写法,虽然以前的写法也是支持的,个人建议要么之前那套,要么一点都不要。不要出现setupmethods同时出现的情况。

  1. setup beforeCreate和created已经不需要了,setup的触发时机其实就是在beforeCreate之前。他仅在实例初始化的时候运行一次,以后再不会执行,setup是同步。
  2. 两个参数,props是父级组件传递的数据,实时更新。不可以解构,会丢失监听。可以用torefs将props转为组件内部的监听数据。但是我个人感觉这不是个好方法,我还是喜欢 props. 的形式使用,这样代码一目了然,很清楚你用的数据到底是props传递的还是当前组件声明的。数据流向很清晰; context是个对象,可以解构使用,包含emit等属性,没什么好说的,看看文档就好。
  3. setupthis是没用的,因为还没return呢,所以各依赖包为了支持这一特性,都做了相应的更新 router vuex 都有专门的方法,通过引入的方式获取到实例。可以看一下下图的代码。
  4. 计算属性、监听属性、生命周期。这些都是以方法的形式注入到组件中,生命周期的名字变了一些,功能方面并没有变化,监听属性也是,写法变化了。文档写的很清楚,这里,我就不多做赘述了。其次还增加了一些新的api。ref reactive声明响应式变量;provide / inject 父子组件互通;watchEffect自动监听,不太推荐,他会自动监听所有的响应式变量,任何有变化了都会触发回调,有点类似于update。当然也会导致频繁执行的问题。一些简单的页面可以用,其他情况还是用watch手动标记需要监听的变量最好。

七、总结

Vue3的新属性非常多,多研究看文档。不过目前社区还不是很完善,个人感觉到2022年的年底,应该会改善很多,大部分依赖都会支持。

最后,如果大家觉得这个项目写的还可以的,给个star,对代码有问题,也希望大佬们能修正一下,有好的组件或者效果都可以分享一下。万一项目有需求就用上了呢,哈哈。

vue-cli地址

vue-cli3地址

到此这篇关于手把手教你搭建vue3.0项目架构的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 如何搭建一个完整的Vue3.0+ts的项目步骤

    相信9月18日尤大大的关于Vue3.0的发表演讲大家一定有所关注,现在Vue3.0 也已经进入RC阶段(最终产品的候选版本,如果没有问题则可发布成为正式版本).所以Vue3.0的学习是我们必然的趋势,今天,主要分享一下Vue3.0的详细搭建过程,希望可以为初入Vue3的小伙伴有所帮助. 我们现在开始进入今天的主题啦~~ 一.安装 1. 安装nodejs 此处提供nodejs下载地址: https://nodejs.org/zh-cn/download/ 大家根据自己电脑的配置选择适配的 LTS(

  • vue3.0+vant3.0快速搭建项目的实现

    目录 一.项目的搭建 二.vue3体验+vant引入 2020年09月18日,vue.js 3.0正式发布,去网上看了看关于3.0的教程都不够完整,但其实vuecli最新版已经支持了vue3.0项目的快速搭建,这篇文章将带你了解一下vue3.0有哪些新的改变以及如何快速搭建vue3.0项目. 一.项目的搭建 1.首先,nodejs的安装不用我多说了吧,nodejs官网地址. 2.既然vuecli最新版已经可以快速搭建3.0了,那怎么升级到最新版呢?vue-cli官网地址,不知道vue-cli版本

  • vue3.0 搭建项目总结(详细步骤)

    1.环境配置 项目中的不同开发环境有很多依赖配置,所以可以根据环境设置不同的配置,以免在不同环境经常修改文件 1 在根目录下创建 `.env.[环境]` 文件,可以在不同环境设置一些配置变量,如图 .env.dev 文件 2.eslint 配置 在package.json 文件里面有一个eslintConfig对象,可设置rules: 如图 3.配置svg 在vue.config.js 里面需在module.exports对象里面设置 chainWebpack: config => { conf

  • vue3.0 项目搭建和使用流程

    最近在重构一个老项目,领导要求使用新的技术栈.好吧,是时候秀一波我新学的vue3.0了. 不多bb,开始我的表演...(以下只是我自己个人的理解和使用习惯,仅供参考哦) 一:项目搭建 1. 可以自己配置vite,但是为了节省时间,我就使用脚手架直接搭建.(有兴趣可以研究一下vite,还是很香的) 2. 项目生成:iTerm下: vue create myproject 之后根据自己的要求选择不同的配置 选择我们需要的3.x 之后按照要求配置一下router,已经pack.json ... 然后n

  • 手把手教你搭建vue3.0项目架构

    前言: GitHub上我开源了vue-cli.vue-cli3两个库,文章末尾会附上GitHub仓库地址.这次把2.0的重新写了一遍,优化了一下.然后按照2.0的功能和代码,按照vue3.0的语法,完全重写了一遍.虽然名字叫cli,其实两个库都是基于vue-cli创建的.做这个的目的是为了工作中快速启动项目,毕竟切片打包.less.axios.vuex.router.UI框架.基础文件目录.权限,这些都是基操,当然项目不同,还是要做些调整的.这两个项目的master分支都是最基础的东西,里面还包

  • 手把手教你搭建一个vue项目的完整步骤

    目录 一.环境准备 1.安装node.js 2.检查node.js版本 3.为了提高我们的效率,可以使用淘宝的镜像源 二.搭建vue环境 1.全局安装vue-cli 三.创建vue项目 1.用cmd命令创建项目 1.1创建文件 1.2选择配置信息 1.3选择版本 1.4路径模式选择 1.5语法代码格式检查 1.6第三方文件存在的方式 1.7是否保存本次配置信息(保存预设) 1.8创建成功 1.9运行 1.10启动 1.11停止服务 2.用vue资源管理器创建 2.1进入vue资源管理器界面(vu

  • 手把手教你搭建第一个Spring Batch项目的步骤

    一.概述 Spring Batch是一个轻量级,全面的批处理框架. 一个典型的批处理过程可能是: 从数据库,文件或队列中读取大量记录. 以某种方式处理数据. 以修改之后的形式写回数据 Spring Batch 应用架构图: 一个Batch(批处理)过程由一个Job(作业)组成.这个实体封装了整个批处理过程. 一个Job(作业)可以由一个或多个Step(步骤)组成.在大多数情况下,一个步骤将读取数据(通过ItemReader),处理数据(使用ItemProcessor),然后写入数据(通过Item

  • vue3.0项目快速搭建的完整步骤记录

    目录 一.我们要确保vue/cli版本在4.5.0以上,才能更好的支持3.0 二.通过vue/cli3创建我们的第一个项目 Router CSS 预编译 ESLint 语法校验 运行项目 升级vue 三.vue3.0相比vue2.0改进和新特性 总结 如何搭建一个vue3.0基础项目? 一.我们要确保vue/cli版本在4.5.0以上,才能更好的支持3.0 //安装最新vue/cli yarn global add @vue/cli //或 npm install -g @vue/cli 用vu

  • vue3.0 项目搭建和使用流程

    目录 一:项目搭建 二: 目录结构 三: Composition Api 四: 基本使用: 最近在重构一个老项目,领导要求使用新的技术栈.好吧,是时候秀一波我新学的vue3.0了. 不多bb,开始我的表演...(以下只是我自己个人的理解和使用习惯,仅供参考哦) 一:项目搭建 1. 可以自己配置vite,但是为了节省时间,我就使用脚手架直接搭建.(有兴趣可以研究一下vite,还是很香的) 2. 项目生成:iTerm下: vue create myproject 之后根据自己的要求选择不同的配置 选

  • 手把手教你搭建腾讯云服务器入门(图文教程)

    本文由博主 威威喵 原创 博客主页:https://blog.csdn.net/smile_running 背景 暑假期间,愁着无聊但也不能荒废学业吧,毕竟以后想靠技术混口饭吃!为了实施自己的计划,特地挑了一个便宜的云服务器来用作自己的后台:这不是学生狗没钱嘛,所以我就挑了一个腾讯云服务器.虽说配置很低,但够我们玩就行.因为想写一个电商App,数据总不能从本地数据库来吧,那样也太没水平了!因为自己也会一点Java Web 服务器,索性租了一个云服务器,接口啥的自己写,说干就干吧. 由于本人是在校

  • 从零开始用webpack构建一个vue3.0项目工程的实现

    前言 入门级别教程,适用于初级工程师 移动端 单页面  Demo 正文 第一步 找一个你认为合适的磁盘.输入mkdir test, cd test , npm init -y. 第二步 安装依赖 webpack 系列依赖 webpack webpack-cli babel 系列依赖 @babel/core @babel/preset-env 移动兼容方案 amfe-flexible autoprefixer axios axios webpack loader babel-loader css-

  • 手把手教你怎么创建spring项目

    创建Spring项目 通过spring.io生成初始代码,配置如下 下载好会得到一个.zip文件,解压导入IDEA就可以开始了,这是基础的项目结构 让我们打开src/main/java/geektime/spring/hello/hellospring/HelloSpringApplication.java,修改成如下代码 package geektime.spring.hello.hellospring; import org.springframework.boot.SpringApplic

  • Java开发之手把手教你搭建企业级工程SSM框架

    目录 1.在IDEA界面中创建MavenWeb工程 2.在pom.xml中添加如下相关依赖 3.web.xml 配置 Spring MVC.Spring 4.分别在main目录下创建resource包 5.在spring.xml中连接数据库 6.springmvc.xml中配置驱动和前后缀表达式 7.配置打印sql语句和指定实体类,让idea搜索需要的javaBean 8.创建与数据库相对应的实体类 9.Handler 10.Service及其接口 11.Repository 12.测试所用的j

随机推荐