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

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. Directive间的通信

    Directive间的通信 源自大漠的<AngularJS>5个实例详解Directive(指令)机制 这个例子主要的难点在于如何在子Expander里面访问外层Accordion的sco ...

  2. SQL中Group By的使用

    1.概述 2.原始表 3.简单Group By 4.Group By 和 Order By 5.Group By中Select指定的字段限制 6.Group By All 7.Group By与聚合函 ...

  3. SSIS Parameter用法

    今天学习SSISParameter的用法,记录学习的过程. Parameters能够在Project Deployment Model下使用,不能在Package Deployment Model使用 ...

  4. MVC5 网站开发实践 概述

    目录 MVC5 网站开发实践  概述 MVC5 网站开发实践  1.建立项目 MVC5 网站开发实践  2.后台管理 MVC5 网站开发实践  2.1.管理员登陆 MVC5 网站开发实践 2.2.管理 ...

  5. 【原创】开源.NET排列组合组件KwCombinatorics使用(一)—组合生成

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  6. MVC实用架构设计(三)——EF-Code First(5):二级缓存

    前言 今天我们来谈谈EF的缓存问题. 缓存对于一个系统来说至关重要,但是是EF到版本6了仍然没有见到有支持查询结果缓存机制的迹象.EF4开始会把查询语句编译成存储过程缓存在Sql Server中,据说 ...

  7. scikit-learn 和pandas 基于windows单机机器学习环境的搭建

    很多朋友想学习机器学习,却苦于环境的搭建,这里给出windows上scikit-learn研究开发环境的搭建步骤. Step 1. Python的安装 python有2.x和3.x的版本之分,但是很多 ...

  8. Delegate、Predicate、Action和Func

    写在前面 Delegate Predicate Action Func 逆变和协变 先说下什么是委托(Delegate),委托在C#中是一种类型,和Class是一个级别,但是我们经常把它看做是一个方法 ...

  9. java 连接数据库之一个完整的函数

    第一个参数要查询的列名第二个参数是连接的url第三个参数是用户名第四个参数密码第五个参数是执行的命令. 注意,url格式是 jdbc:mysql://localhost:3306/wechat jdb ...

  10. 【Java】 环境变量如何配置?

    Java知识简介与环境变量配置问题 一.在学习一门语言中,不仅需要掌握其语法结构,开发平台以及环境也是很重要的.在开始Java学习之前首先对其进行压缩包的下载安装,以及开发平台环境下载安装.基于此下面 ...