说是踩坑之旅 其实是最近在思考一些问题 然后想实现方案的时候,就慢慢的查到这些方案   老司机可以忽略下面的内容了

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傻瓜指南(里面的三篇文章都不错)

    webpack官网

  6.2 vue相关

    vue官网的中文文档

    vue-resource    官网    vue-resource全攻略

    vue-loader官网

    vue-router2官网中文文档

  6.3  一篇博友的踩坑文章

    

vue+ vue-router + webpack 踩坑之旅的更多相关文章

  1. webpack踩坑之旅

    1.安装webpack失败问题 错误原因: 这主要是我以普通用户的身份进行webpack的全局安装,权限不够. [普通用户] 说白了就是通过运行window+r+cmd进入的命令行 解决方式: 用管理 ...

  2. webpack入坑之旅(五)加载vue单文件组件

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

  3. vue踩坑之旅 -- computed watch

    vue踩坑之旅 -- computed watch 经常在使用vue初始化组件时,会报一些莫名其妙的错误,或者,数据明明有数据,确还是拿不到,这是多么痛苦而又令人忍不住抓耳挠腮,捶胸顿足啊 技术点 v ...

  4. vue项目移植tinymce踩坑

    转载:https://segmentfault.com/a/1190000012791569?utm_source=tag-newest 2019-2-18 貌似这篇文章帮了大家一些小忙最近tinym ...

  5. webpack入坑之旅(六)配合vue-router实现SPA

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

  6. 我的微信小程序入门踩坑之旅

    前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...

  7. webpack入坑之旅(四)扬帆起航

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

  8. webpack入坑之旅(三)webpack.config入门

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

  9. webpack入坑之旅(二)loader入门

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack 在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

随机推荐

  1. 基于1.3.3版本tooltip的datagrid单元格tip实现

    基于1.3.3版本tooltip的datagrid单元格tip实现 2013年05月25日 ⁄ datagrid ⁄ 共 6122字 ⁄ 评论数 26 ⁄ 被围观 7,033 views+ 文章目录 ...

  2. Javascript学习记录——原生JS实现旋转木马特效

    昨天学习到了JS特效部分,然后老师讲了旋转木马特效的实现,如上图.不过只是讲了通过点击箭头实现图片的切换,对于点击图片本身以及二者联动却是没有讲解. 本着一颗追求完美的心,今天花费了一个中午终于将整个 ...

  3. 开源WinForms界面开发框架Management Studio 选项卡文档 插件 Office 2007蓝色风格 后台线程

    Management Studio是我在WinForms小项目开发过程中搭建起来的一个插件式结构的应用程序框架,因为简单灵活又容易扩展,现在将它开源供读者参考. 跑起来的效果图如下所示,具备选项卡式多 ...

  4. WPF 弹出UserControl

    UserControl正常情况下是不能被弹出的,而编写好的UserControl页面,为了查看效果,又需要弹出. 为了解决这个问题,UserControl需要一个Windows来接收. var win ...

  5. 前端学PHP之面向对象系列第六篇——简单图形面积计算器实现

    前面的话 本文用面向对象的技术来实现一个简单的图形面积计算器 图形类 //rect.class.php <?php abstract class Shape{ public $name; abs ...

  6. Android自定义spinner下拉框实现的实现

    一:前言 本人参考博客:http://blog.csdn.net/jdsjlzx/article/details/41316417 最近在弄一个下拉框,发现Android自带的很难实现我的功能,于是去 ...

  7. Percona博客学习总结

    1. Upgrading to MySQL 5.7, focusing on temporal types 在MySQL 5.6.4中,对TIME, TIMESTAMP and DATETIME三种时 ...

  8. hibernate笔记--通过SchemaExport生成数据库表

    方法比较简单,项目中只需要两个java类(一个实体类,如User,一个工具类),两个配置文件(hibernate必须的两个配置文件hibernate.cfg.xml,与User.hbm.xml),即可 ...

  9. 小div布局之卡片堆叠(card-stacking)

    前端的页面布局和各种效果真是让人眼花缭乱,公司的设计师恨不得在一个网站上把前端的布局和样式效果都用一遍. 如何实现下面这种布局效果?我给这种布局效果起了个名字,叫做小div布局之卡片堆叠.然后我百度了 ...

  10. 【集合框架】JDK1.8源码分析之TreeMap(五)

    一.前言 当我们需要把插入的元素进行排序的时候,就是时候考虑TreeMap了,从名字上来看,TreeMap肯定是和树是脱不了干系的,它是一个排序了的Map,下面我们来着重分析其源码,理解其底层如何实现 ...