vue+ vue-router + webpack 踩坑之旅
说是踩坑之旅 其实是最近在思考一些问题 然后想实现方案的时候,就慢慢的查到这些方案 老司机可以忽略下面的内容了
1)起因 考虑到数据分离的问题 因为server是express搭的 自然少不了res.render("xx",data) 这句话的意思就是去查找相应的模板文件然后在用数据去渲染在将渲染好的页面去返回给浏览器,给浏览器去解析,渲染模板其实就是做的替换字符串+拼接字符串的活 各种的模板引擎也有各个优化的点(比如可以将对应的模板编译的函数保存在内存中,然后在通过数据去渲染 这样就不用每次去编译渲染了) 但是这并不是一种前后端分离的方案 我理解的是后端只提供数据接口的api,然后前端通过api去获取数据在去渲染页面,因为最近在学习vue,就想着用vue来这些事情
2) 思考实现的思路 我的第一种想法是在express中配置路由 通过res.sendfile(file) 这个页面返回给前端后,通过vue进行管理(使用vue-rosource去获取特定的数据) 但是当是这样的url user/11 user/22 的时候我们还给前端返回同样的页面 前端怎么根据这个11 22 去获取特定用户的数据去渲染页面呢 其实我们返回的就是模板 接着就了解到vue-router 可以通过$route.params获取后面的11和22 这样我们就能动态的去获取数据渲染模板了 模板其实可以理解为组件 直接在template里面写不友好 在看网上的例子的时候就方面了webpack + vue.loader
3)解决方案 webpack + vue + vue-loader +express(提供后端数据)
4)遇到的各种坑
4.1 babel 配置的问题 (应该是需要配置bebel的转换环境)
vue模板使用es6语法写的 要在webpack中配置 (安装babel-loader babel-preset-es2015 vue-loader)
在加载vue的时候总是报错es6配置有问题 我通过下面的配置解决了这个问题
4.1.1 在webpack.config.js的同级目录下生成.babelrc 内容如下

4.1.2 在webpack.config.js中进行babel的配置 这个是我的webpack.config.js的配置

4.2 在组件中有template报错
发现nodo_modules中vue中package.json中main是dist/vue.common.js 而不是dist/vue.js 在官网上找到了这个问题的答案

也就是想支持template方式的就要引入dist/vue.js
4.3 vue-router的版本问题 下面是vue-router2的官方的翻译文档 介绍vue-router2
4.4 页面路由后url变化的处理
当访问index.html后 我们点击下面的router-link的时候 url会发生变化 也就是从index.html变成 index.html/first 应该是我这的配置出现了问题 为什么没有变成index.html#first这种 这个问题不是很明白 在url变成这种的时候 去刷新页面就会走express的路由,不存在这个路由就会报错 我的解决方案是添加一个末尾的中间件 返回index.html
5)总结
其实踩坑是一个学习的过程,vue官网的例子也大致的看过但是实际用的时候还是不一样,最好的方式就是在官网上去找一些例子 然后自己在本地重新的弄一遍算是一个学习过程 上面的方案可以大致的一个简单的单页应用 也实现了前后端分离 还有就是官网的例子要好好看
6)总结的学习资料
6.1 webpack相关
webpack入坑之旅(这里面的vue-router是vue1.0的)
webpack傻瓜指南(里面的三篇文章都不错)
6.2 vue相关
vue-resource 官网 vue-resource全攻略
6.3 一篇博友的踩坑文章
vue+ vue-router + webpack 踩坑之旅的更多相关文章
- webpack踩坑之旅
1.安装webpack失败问题 错误原因: 这主要是我以普通用户的身份进行webpack的全局安装,权限不够. [普通用户] 说白了就是通过运行window+r+cmd进入的命令行 解决方式: 用管理 ...
- webpack入坑之旅(五)加载vue单文件组件
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- vue踩坑之旅 -- computed watch
vue踩坑之旅 -- computed watch 经常在使用vue初始化组件时,会报一些莫名其妙的错误,或者,数据明明有数据,确还是拿不到,这是多么痛苦而又令人忍不住抓耳挠腮,捶胸顿足啊 技术点 v ...
- vue项目移植tinymce踩坑
转载:https://segmentfault.com/a/1190000012791569?utm_source=tag-newest 2019-2-18 貌似这篇文章帮了大家一些小忙最近tinym ...
- webpack入坑之旅(六)配合vue-router实现SPA
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- 我的微信小程序入门踩坑之旅
前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...
- webpack入坑之旅(四)扬帆起航
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- webpack入坑之旅(三)webpack.config入门
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- webpack入坑之旅(二)loader入门
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack 在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
随机推荐
- sql期末复习(二)
1.概念模式是对dba所看到的全局数据逻辑结构和特征的描述 概念模式是对数据整体的逻辑结构的描述 2.数据库网状模型应满足的条件是允许一个以上的结点无父结点,其余结点都只有一个父结点 3.sql语言中 ...
- A Simple OpenCASCADE Qt Demo-occQt
A Simple OpenCASCADE Qt Demo-occQt eryar@163.com Abstract. OpenCASCADE have provided the Qt samples ...
- jQuery之ready源码分析
只要使用过jQuery的,想必对ready都不陌生,$(function(){})和$(document).ready(function(){})的使用更是习以为常. 要说到window.onload ...
- ELF静态链接
一直对ELF目标文件是怎样链接成可执行文件感到比较的疑惑,ELF文件里面的重定位段是怎样解决符号引用问题的?前几天偶然看了<深入理解计算机系统>里面讲了这个问题,看了之后对里面的实现机制终 ...
- (十五)WebGIS中平移功能的设计和实现
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 这一章我们将详细讲解WebGIS工具栏中另一个基础工具——平 ...
- 理解JAVASCRIPT 闭包
最近去面试了一家企业,结果非常灰心丧气,于是周末给自己定了一个目标 学好一门,学精通一门.不求多,只求懂. 最近看到一个概念“闭包”. 什么是闭包呢? 简单一点就是:看得到多和看得到少的区别. 上面这 ...
- Wave - 花たん 音乐
Wave 歌手:花たん 所属专辑:Flower 間違えて宇宙終わって(宇宙因为一个错误而终结了) 青信号はいつも通り(通行的灯号一如往常的) 飛んでまた止まって(又再停止传播) また 飛びそうだ(然后 ...
- ASP.NET程序开发范例宝典
在整理资料时发现一些非常有用的资料源码尤其是初学者,大部分是平时用到的知识点,可以参考其实现方法,分享给大家学习,但请不要用于商业用途. 如果对你有用请多多推荐给其他人分享. 点击对应章节标题下载本章 ...
- PHP实现实现数字补零格式化
在接支付SDK的时候,第三方回调处理时需要IP,并且IP的需求是:去掉点号,补零到每地址段3位, 如:192168000001 先看看我的实现: <?php $IP = explode ( '. ...
- Moon.Orm与其他Orm的技术对比
有时候在思考大家为什么喜欢EF,为什么又出现这么多的Orm,为什么Nhiberate被人许多人接收又被许多人拒绝 最后发现结论:萝卜白菜各有所爱.适合自己的就是最好的. EF 微软团队支持(可谓强大的 ...