Vuejs2 + Webpack框架里,模拟下载的实例讲解
在实际的开发工作中,难免要配合销售人员,提前做一些前端的DEMO出来。这个时候往往还没有连接后端API。假如要演示一个下载连接,那么应该如何做呢?
我们希望能够达成以下两点:
1、在开发环境下,我们可以在webpack-dev-server开发服务器上点击下载连接,点击后浏览器就能不下载文件。
2、当演示的时候,代码编译后放到nginx中。用户可以点击下载链接。nginx存放的都是业务代码。
那么如何做到这两点呢?假如我们要模拟下载一个test.docx文件。我们可以利用url-loader来对.docx文件做处理。可能有人会问:“url-loader一般不是处理img标签里面的图片文件路径吗?”为了解决这个img标签的问题,我们可以在一个页面中加上隐藏的图片标签。最后加一个a标签:
*演示项目*
项目名称是blog02,项目目录结构如下:
blog02 │ ├─src │├─App.vue │├─home.vue │├─main.js │├─test.docx │└─router.js │ ├─.babelrc ├─index.template.html ├─package.json └─webpack.config.js
App.vue
home.vue
这里是首页 下载
main.js
importVuefrom'vue' importAppfrom'./App.vue' importVueRouterfrom'vue-router' importroutesfrom'./router' importVueSuperagentfrom'vue-superagent' import'babel-polyfill'; Vue.use(VueRouter); Vue.use(VueSuperagent); constrouter=newVueRouter({ mode:'history', routes }) newVue({ el:'#app', router, render:h=>h(App) })
router.js
importHomefrom'./home.vue' exportdefault[{ path:'/', component:Home }]
.babelrc
{ "presets":[ ["latest",{ "es2015":{"modules":false} }] ] }
index.template.html
blog02