Vue.js 是一种流行的前端 JavaScript 框架,它可以帮助我们更轻松地创建复杂的前端应用程序。
本文将介绍如何一步步搭建 Vue 开发环境,并实现一个简单的下载功能。
通过本文的学习,您将掌握 Vue 的基本配置和使用方法,以及如何在 Vue中实现文件下载功能。
确保您的计算机上已安装 Node.js 和 npm。
如果没有,请访问 Node.js 官网下载并安装。
安装完成后,在命令行中输入以下命令检查是否安装成功:
```shell
node-v
npm -v
```
如果成功安装,将显示版本号。
Vue CLI 是一个基于 Vue.js 项目的命令行工具,可以帮助我们快速创建和管理 Vue 项目。通过以下命令在 npm 中全局安装 Vue CLI:
```shell
npm install -g @vue/cli
```
安装完成后,输入以下命令验证安装是否成功:
```shell
vue --version
```
3. 创建 Vue 项目
使用 Vue CLI 创建新的 Vue 项目。在命令行中输入以下命令:
```shell
vue create my-project
```
其中,my-project 是您的项目名称。根据提示选择或自定义配置选项。创建完成后,进入项目目录:
```shell
cd my-project
```
4.运行项目
```shell
npmrun serve
```
这将启动开发服务器并在本地浏览器中预览项目。
在 Vue 项目中实现下载功能,可以通过创建一个新的组件来实现。以下是一个简单的示例:
```vue
```
在上述代码中,我们创建了一个带有下载按钮的组件。点击按钮时,会触发 downloadFile 方法,该方法通过创建一个隐藏的 a 标签来模拟点击下载操作。您可以将 url 替换为您要下载的实际文件 URL 地址。
在需要使用下载功能的页面中引入并使用 DownloadComponent 组件。例如,在 App.vue 中添加以下代码:
```vue
第一种方法:通过创建超链接,使用a标签向后端发送get请求,并为a标签添加download属性。 这种方式通过在a标签中写入地址,并用js触发点击,实现访问文件地址即下载文件。 代码示例:>下载downloadFile(url, fileName, flieId, type) {let link = (a); = none; = baseUrl + /xxx/xxx/xxx?flieId= + flieId;(link);();}第二种方法:利用()下载。 ()打开一个新网页,直接在新网页访问文件地址即可下载。 此时后端返回的是文件流,无需再次打开url进行下载。 代码示例:downloadFile() {(baseUrl + /xxx/xxx/xxx/getTemplate?templateCode=manual_pc, _self);}第三种方法:通过创建iframe方式。 创建iframe,设置src属性指向文件下载地址,并将iframe设置为不可见。 代码示例:handleExport(row) {var elemIF = (iframe); = user/downloadExcel?snapshotTime= + formatDate(new Date(), yyyy-MM-dd hh:mm) + &category= + ; = none;(elemIF);}第四种方法:以文件流形式,通过发送post请求,使用blob格式实现下载功能,适用于图片、pdf及svg文件。 代码示例:downloadFile(fileName, fileUrl) {if (!fileUrl) {return;}let url = (new Blob([fileUrl]));let link = (a); = none; = url;(download, fileName);(link);();}第五种方法:使用ajax原生方法实现下载。 通过创建XMLHttpRequest对象,设置请求类型、响应类型等,并在请求成功后生成下载链接。 代码示例:newFileNameClick(url,name) {var xReq = new XMLHttpRequest();(GET, url, true); = blob; = function () {var url = ();var a = (a); = url; = name;();();};();}
先决条件
你必须安装好Chrome和VSCode。 同时请确保自己在VSCode中安装了DebuggerforChrome扩展的最新版本。
在可以从VSCode调试你的Vue组件之前,你需要更新webpack配置以构建sourcemap。 做了这件事之后,我们的调试器就有机会将一个被压缩的文件中的代码对应回其源文件相应的位置。 这会确保你可以在一个应用中调试,即便你的资源已经被webpack优化过了也没关系。
打开config/并找到devtool属性。将其更新为:
如果使用vue-cli3你需要设置内的devtool属性:
进入Debugger视图,添加Chrome配置,将内容替换成以下内容
设置断点
此处response返回数据
启动调试
在终端使用如下命令开启这个应用
进入Debug视图,选择‘vuejs:chrome’配置,然后按F5或点击绿色的play按钮
随着一个新的Chrome实例打开,你的断点现在应该被命中了。
vueVSCode开发设置(html自动补全、eslint保存时格式化、vetur格式化html)
File-Preference-Setting-搜索
方法1:File-Preference-Setting-搜索
方法2:File-Preference-搜索框输入
之后能看到的可选项有
off:关闭自动保存(默认)
afterDelay:延迟xx时间后保存,可在中配置延迟时间;
onFocusChange:编辑器失去焦点时自动保存;
onWindowChange:窗口失去焦点时(编辑器窗口的切换,桌面窗口的切换)自动保存;
安装ESLint
vscode中安装ESLint插件
然后配置vscode的
File-Preference-UserSnippers
文件,然后添加下面模板
然后新建文件,写下vue然后Tap键就能生成什么的模板。
如果没有生成模板只是多了个空格或者生成的是vue标签的话,我们还得设置一下,打开,添加下面的设置
如果你的文件有设置的话,请删除,因为他会和上面冲突。
和都是设置html标签的补全,如果是要用模板补全功能的话,html标签补全我们就用来设置。
vue的开发中vscode可装用于开发规范的插件有
Prettier:规范js
ESLint:规范js
Vuter:规范文件中template
stylus:规范stylus
注意:以下配置是基于接下来介绍的插件设置的,如果没有安装插件是不会生效的。
或者:
其中:
4.如果使用了stylus,那么vscode安装stylus插件,进行设置,不适用冒号双引号大括号
根目录下创建eslint规则文件
(下面browsers多了s正确的为browser)
如何优雅地使用VSCode来编辑vue文件先来扒一扒使用PHPStorm遇到的问题:
vue文件虽然可以通过插件来解决高亮问题,但是script标签中的ES6代码的识别老是出问题,箭头函数有的时候能正确识别,有的时候会报错
无法正确识别vue文件中的jsx语法
无法正确识别和高亮vue文件style标签中使用的less语法
vue文件中template部分使用了大量的自定义标签(自定义组件)和自定义属性,会报一堆warning
经常性卡死
webpack实时编译的错误不能直接展示在代码编辑器内,还得自己到控制台中查看
如何安装vscode
很简单,传送门:官网下载安装
第一步,要支持vue文件的基本语法高亮
这里,我试过好3个插件:vue,VueHelper和vetur,最终选择使用vetur。
安装插件:Ctrl+P然后输入extinstallvetur然后回车点安装即可。
p.s:vscode的插件安装比PHPStorm的插件安装更快捷方便,安装完成后还不用重启整个程序,只要重新加载下工作区窗口就可以了。
安装完vetur后还需要加上这样一段配置下:
vue-html:html,
这时可以打开一个vue文件试试,注意下右下角状态栏是否正确识别为vue类型:
如果被识别为text或html,则记得要点击切换下。
第二步,要支持vue文件的ESLint
可能还有人会问为什么要ESLint?没有lint的代码虽然也可能可以正确运行,但是lint作为编译前的一道检测成本更小,而且更快。 此外,ESLint还有很多规范是帮助我们写出更加优雅而不容易出错的代码的。
jshint本来也是个不错的选择,但是ESLint对jsx的支持让我还是选择了ESLint.
安装插件:Ctrl+P然后输入extinstalleslint然后回车点安装即可。
ESLint不是安装后就可以用的,还需要一些环境和配置:
首先,需要全局的ESLint,如果没有安装可以使用npminstall-geslint来安装。
其次,vue文件是类HTML的文件,为了支持对vue文件的ESLint,需要eslint-plugin-html这个插件。可以使用npminstall-geslint-plugin-html来安装
接着,安装了HTML插件后,还需要在vscode中配置下ESLint:
javascript,
javascriptreact,
plugins:[html]
最后,别忘了在项目根目录下创建,如果还没创建,还可以使用下面快捷命令来创建:
这样一来vue中写的js代码也能正确地被lint了。
要是不小心少个括号之类的都可以有对应的报错:
多余import也都能报错:
还是蛮智能的。
第三步,配置构建任务
vue项目的构建我选择用webpack,不过,并不是直接使用命令行下的webpack而是使用了webpack的API写的node脚本。 脚本主要有两个,一个是build/bin/另一个是build/bin/分别是单次构建和实时构建。
于是乎,对应vscode中的tasks也是有两个:build和watch,简单配置如下:
//use`Ctrl+P`andtype`task`+SPACE+taskNametorunatask
version:0.1.0,
taskName:build,
echoCommand:true,
command:node,
build/bin/
suppressTaskName:true,
isBuildCommand:true
taskName:watch,
echoCommand:true,
command:node,
build/bin/
suppressTaskName:true,
isBackground:true
这样配置好后,按Ctrl+Shift+B即可开始单次构建。 不过单次构建比较慢(要10秒+),一般我都用实时构建:Ctrl+P然后输入taskwatch回车即可开始实时构建。 实时构建除了第一次比较慢,其他时候还是非常快的,一般1秒内就可以构建好。
最后,webpack构建错误提示
webpack构建失败后一般都会有错误提示,会显示在输出窗口中:
为啥是彩色的?因为装了OutputColorizer这个插件。
当然,这样还是不够方便--实时构建是后台运行的,“输出”窗口一般也都是在后台,每次保存完文件还得点开岂不麻烦。
要是能做到像ESLint一样直接把错误标到编辑器上面就好了。 真的可以吗?翻了下vscode的文档,发现有神奇的problemMatcher--可以对任务输出进行解析,解析出的问题会显示在“问题”窗口中,如果还有文件名行号和列号,则会在源代码编辑窗口中对应的位置标出来。
先放个最终效果:
在这个文件的第32行,import了一个不存在的模块,这样的错误在ESLint中当然是检查不出来的,然而在webpack的实时构建中会报错:
这个事情的困难在于两点:
如何通过problemMatcher把这个错误给抓出来?
如何找到错误对应的行号?(如果可能的话,还有列号)
webpack的错误输出格式并不是完全统一的,而且有些还没有行号--一方面可能是webpack的bug,另一方面vue文件在构建的时候会拆成template,script和style三个方面进行构建,报错的行号可能对不上。
最终我的解决方案是对webpack的错误重新格式化输出,然后匹配:
首先,重新格式化输出需要format-webpack-stats-errors-warnings这个包(偶新写的)
npminstall--save-devformat-webpack-stats-errors-warnings
然后,到build/bin/和build/bin/中在webpack构建完成的回调函数中增加这个格式化后的输出:
更多使用介绍见github
最后,在/中,每个任务下添加problemWatcher:
taskName:build,
//build任务的:
problemMatcher:{
owner:webpack,
fileLocation:[
${workspaceRoot}
regexp:^!(\\w+):(\\S+)?:(\\d+),(\\d+)(?:~(?:(\\d+),)?(\\d+))?:(.*)$,
severity:1,
endLine:5,
endColumn:6,
taskName:watch,
//watch任务的:
problemMatcher:{
owner:webpack,
fileLocation:[
${workspaceRoot}
regexp:^!(\\w+):(\\S+)?:(\\d+),(\\d+)(?:~(?:(\\d+),)?(\\d+))?:(.*)$,
severity:1,
endLine:5,
endColumn:6,
watching:{
activeOnStart:true,
beginsPattern:^\\s*Webpackbeginrun,
endsPattern:^\\s*Buildcompleteat
注:在watch任务中,为了匹配何时开始和何时结束,我在webpack构建的run和watch时增加了一个(Webpackbeginrun)的打印,而在构建完成后增加了一个(Buildcompleteat..)的打印。
vue3.0+vite+router搭建项目(1)、去官网安装node
(2)、配置gitbash
(3)安装yarn(yarn比npm更加好用)
(4)、安装yarn淘宝源和npm淘宝源
yarn设置镜像:
npm设置为淘宝镜像
(1)、安装全局vite
可以改成这个创建
(2)、创建项目(项目名:mangoUI)
创建成功之后有三个指令cdmangoUI和yarninstall,yarndev依次执行,项目创建成功。
注意:使用vscode打开最好安装一个插件:Vue3snippets,方便模板建立。
(1)、查看所有路由版本:
(2)、安装路由(vue-router=4.0.0)
(3)、初始化路由
情景一:打开,初始化路由。
情景二:(使用ts语法)将改成,初始化路由。 别忘了引用路径后续要改成。
这时组件引用路径会报一个错误,这是因为Typescript只能理解文件,不能理解文件。
解决报错方法:在根目录新建目录,告诉TS如何理解文件
如果关闭还是报错,再在根目录创建一个文件
文件下载方式在Vue中实现的途径有多种,例如使用方法直接访问文件的URL地址下载,利用标签进行文件下载或动态创建标签进行下载,通过进行下载,以及借助axios实现下载操作。 在Vue中对下载的文件进行重命名,可以通过构建下载链接来实现。 这需要借助JavaScript的Blob对象和()方法。 具体做法是创建一个a元素,将Blob对象转换为URL,然后将a元素的download属性设置为文件的新名称,模拟点击事件以触发文件下载。 示例代码如下,该代码接收两个参数,文件路径(url)和重命名名称(name)。 首先创建a元素,接着使用()方法将Blob对象转换为URL,最后设置a元素的download属性为文件的新名称,模拟点击事件以实现文件下载。 通过上述方法,Vue开发者可以灵活地实现不同类型的文件下载,并对下载文件进行重命名,满足实际应用需求。
本文地址:http://www.hyyidc.com/article/129833.html
上一篇:完整教程Vue的下载安装与项目构建实践功夫...
下一篇:Vuejs版本选择与下载开发者必备知识vuejs怎...