用 Vue 全家桶二次开发 V2EX 社区
一、开发背景
- 为了全面的熟悉Vue+Vue-router+Vuex+axios技术栈,结合V2EX的开放API开发了这个简洁版的V2EX。 在线预览
- API来自官方以及djyde的整理。
- 在线访问请节制使用,跨域是通过Nginx配置反向代理实现的,所以每小时120次API请求是算在服务器头上的(没啥说的了)。
- 当页面刷新后也无法显示,请查看控制台的异步请求是否返回403。如果是的话,要么你等等(很久),要么你clone这个库到本地去玩。
- 项目地址:v2ex-vue
二、项目演示
分类页

文章页 & 用户页

懒加载

移动端

路由
首页默认显示最新的帖子
- 首页 /
- 全部 /topic
- 分类 /topic/:name
- 文章 /article/:id
- 用户 /user/:name
结构
目录是cmd生成的(稍微进行了一下修改,默认的太难看了) tree /f >tree.txt
├─components
│ Topic.vue // 某一分类下的文章或某个用户的全部文章
│ TopicList.vue // 全部分类
├─router
│ index.js // 路由
├─store
│ state.js // 存放API地址和最近一次请求的文章和评论
│ getters.js // 读取state的值
│ mutations.js // 存储懒加载
│ actions.js // 存储异步请求
│ index.js // Vuex
├─ App.vue // 主页面
├─ main.js // Vue主文件
三、项目优势
- 界面设计简洁
- 沉浸式的阅读体验
- 可以按分类/文章/用户浏览
- 在文章页显示用户评论
- 图片使用懒加载模式
- 总之,实现了你看帖所需要的一切
- 项目基于Vue全家桶
- 适配移动端
- 有完善的文档注释
- 有疑问欢迎提交issue
- 感兴趣的欢迎给颗star _
- ...
四、项目缺陷
- 不支持翻页(没有找到翻页的API)
- ...
五、项目安装
项目兼容IE9+,使用项目前,请确保安装好了NodeJS。
git clone https://github.com/bergwhite/v2ex-vue.git // 克隆项目
cd v2ex-vue // 进入项目目录
npm install // 安装依赖
npm run dev // 运行项目
六、解决方案
6.1 本地开发跨域方案
本地开发中,通过配置代理表实现跨域。
config/index.js
-------------------
proxyTable: {
'/api': {
target: 'https://www.v2ex.com',
changeOrigin: true,
pathRewrite: {
'^/api': '/api'
}
}
}
6.2 让Vuex支持IE
直接引入Vuex无法在IE中显示,需要引入babel-polyfill。
npm install babel-polyfill --save-dev // 安装babel-polyfill
src/main.js
---------------
import 'babel-polyfill' // 在vue主文件中导入
6.3 在线部署跨域方案
通过配置Nginx反向代理实现跨域。由于是代理HTTPS,所以你需要生成SSL证书。
/etc/nginx/nginx.conf
------------------------------
http {
server {
listen 80;
listen 443;
server_name www.v2ex.com;
ssl on;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
root /usr/share/nginx/html;
index index.html;
}
location /api/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://www.v2ex.com/api/;
}
}
}
PS:正在找工作,北京有坑的欢迎联系
用 Vue 全家桶二次开发 V2EX 社区的更多相关文章
- Vue 全家桶 + Electron 开发的一个跨三端的应用
代码地址如下:http://www.demodashi.com/demo/11738.html GitHub Repo:vue-objccn Follow: halfrost · GitHub 利用 ...
- [在线+源码]vue全家桶+Typescript开发一款习惯养成APP
# vue-ts-daily 基于Vue.js的2.5.13版本和TypeScript编写的模仿原生应用的WebApp. [源码地址](https://github.com/xiaomuzhu/vue ...
- Vue全家桶之组件化开发
Vue全家桶之组件化开发 一.组件 组件 (Component) 是 Vue.js 最强大的功能之一 组件可以扩展 HTML 元素,封装可重用的代码 二. 组件注册 2.1 全局注册 Vue. ...
- 使用vue全家桶制作博客网站
前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue.vue-router.vuex.v ...
- 转载: 使用vue全家桶制作博客网站 HTML5 移动网站制作的好教程
使用vue全家桶制作博客网站 前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue. ...
- Vue全家桶介绍
一直不清楚全家桶是什么玩意,上网搜了一下,才知道就是平时项目中使用的几个依赖包,下面分享一下 Vue 全家桶介绍 Vue有著名的全家桶系列,包含了vue-router(http://router.vu ...
- Vue全家桶高仿小米商城
大家好,我是河畔一角,时隔半年再次给大家带来一门重量级的实战课程:<Vue全家桶高仿小米商城>,现在很多公司都在参与到商城的构建体系当中,因此掌握一套商城的标准开发体系非常重要:商城的开始 ...
- 【实战】Vue全家桶(vue + axios + vue-router + vuex)搭建移动端H5项目
使用Vue全家桶开发移动端页面. 本博文默认已安装node.js. github链接 一.准备工作 安装vue npm install vue 安装脚手架vue-cli npm install -g ...
- Vue全家桶
简介 “简单却不失优雅,小巧而不乏大匠”. Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架.它是以数据驱动和组件化的思想构建的,采用自底向上增量开发的设计. 为什么 ...
随机推荐
- BrowserSync的安装和使用
BrowserSync真是前端必备神器,浏览器同步工具.简单来说就是当你保存文件的同时浏览器自动刷新网页,省去了手动的环节,大大的节省了开发时间,这个工具是基于nodejs的,可以通过npm安装,不在 ...
- JDBC连接Oracle数据库代码
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.S ...
- file_get_contents和curl对于post方式的解决办法
post方式解决办法 其实很简单,我们只要仔细看看就知道了... file_get_contents: $content=$_POST['content'];$access_token=$_POST[ ...
- python 基础知识(待补充)
数据结构: python数据结构共包含四大类: 列表 列表是可变元素,支持增删改查操作 字典 字典是遍历,key:value 格式. 元组 元组数据不可变元素,仅仅有两个操作 index, coun ...
- 【转】FLEX中SharedObject介绍及应用
ShareObject介绍: 1 ShareObject,顾名思义共享对象,而通常意义上的共享,从B/S结构上来讲,无非是客户端(浏览器端)的共享和服务器端的共享了,不错,ShareObject刚好份 ...
- 读书笔记 effective c++ Item 43 了解如何访问模板化基类中的名字
1. 问题的引入——派生类不会发现模板基类中的名字 假设我们需要写一个应用,使用它可以为不同的公司发送消息.消息可以以加密或者明文(未加密)的方式被发送.如果在编译阶段我们有足够的信息来确定哪个信息会 ...
- 微信小程序支付简单小结与梳理
前言 公司最近在做微信小程序,被分配到做支付这一块,现在对这一块做一个简单的总结和梳理. 支付,对于购物来说,可以说是占据了十分重要的一块,毕竟能收到钱才是重点. 当然在开发之前,我们需要有下面这些东 ...
- Java面试步步走
一.Java 基础 1.Java 集合原理 2.Java 多线程.同步集合.并发集合.阻塞队列.线程池.各种锁等 3.JVM 垃圾回收机制.JVM 引用类型.JVM 内存模型 二.应用技术基础 1)数 ...
- Swift: 使用cocoapods进行单元测试找不到bridge_header文件
准备对项目进行单元测试,在 command + U 运行时出现了错误找不到桥接文件,如下图所示. 找了各种资料,终于解决了,如下图,可以发现search path中路径都为空,由于unit test是 ...
- Java ---理解MVC架构
之间的文章,我们主要是介绍了jsp的相关语法操作,我们可以通过请求某个jsp页面,然后由相对应的servlet实例给我们返回html页面.但是在实际的项目中,我们很少会直接的请求某个页面,一般都是请求 ...