用 Vue 全家桶二次開發 V2EX 社區

来源:http://www.cnblogs.com/bergwhite/archive/2017/05/16/6860403.html
-Advertisement-
Play Games

界面設計簡潔,沉浸式的閱讀體驗,可以按分類/文章/用戶瀏覽,在文章頁顯示用戶評論,圖片使用懶載入模式,總之,實現了你看帖所需要的一切。項目基於Vue全家桶,適配移動端,有完善的文檔註釋。 ...


一、開發背景

  • 為了全面的熟悉Vue+Vue-router+Vuex+axios技術棧,結合V2EX的開放API開發了這個簡潔版的V2EX。 線上預覽
  • API來自官方以及djyde的整理。
  • 線上訪問請節制使用,跨域是通過Nginx配置反向代理實現的,所以每小時120次API請求是算在伺服器頭上的(沒啥說的了)。
  • 當頁面刷新後也無法顯示,請查看控制台的非同步請求是否返回403。如果是的話,要麼你等等(很久),要麼你clone這個庫到本地去玩。
  • 項目地址:v2ex-vue

二、項目演示

分類頁

topic

文章頁 & 用戶頁

article & user

懶載入

lazyLoad

路由

首頁預設顯示最新的帖子

  • 首頁 /
  • 全部 /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:正在找工作,北京有坑的歡迎聯繫


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這個模式看上去很厲害, 貌似篇幅也很長 訪問者模式(Visitor Pattern)定義 偽動態雙親委派 表示一個作用於某對象結構中的各種元素的操作. 它使你可以在不改變各元素的前提下定義作用於這些元素的操作 Visitor介面: 它定義了對每一個元素(Elemnent)的訪問行為, 它的方法個數理 ...
  • 你選擇使用介面和抽象類的依據是什麼?介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。 抽象類表示的是,這個對象是什麼。介面表示的是,這個對象能做什麼。比如,男人,女人,這兩個類(如果是類的話……),他們的抽象類是人。說明,他們都是人。 人可以吃東西,狗也可以吃東西,你可以把“吃東 ...
  • 感謝各位的不吝推薦,本系列前兩篇均有幸榮登博客園推薦排行榜。今天去看,第二篇還排在第二名。 周末把完整的代碼整理完了,請下載體驗。為方便大家,做了“一鍵配置運行.exe”,運行即自動完成所有相關部署配置工作,並打開瀏覽器訪問相應站點。 大家運行遇到問題的,請在本文回覆交流。 ...
  • 這段代碼的意思是,把字元'好'轉化成Unicode編碼, 看看charCodeAt()是怎麼個意思 等於就是'charCodeAt()'裡面的這個參數是指定位置的單個字元, 上面這段代碼就可以看出,一個字元串你想要知道單個字元的編碼,就是靠裡面的這個參數,也就是索引 要是想把unicode解碼成字元 ...
  • 1⃣️ 簡介 fullPage.js 是一個基於 jQuery 的插件,它能夠很方便、很輕鬆的製作出全屏網站,主要功能有: 支持滑鼠滾動 支持前進後退和鍵盤控制 多個回調函數 支持手機、平板觸摸事件 支持 CSS3 動畫 支持視窗縮放 視窗縮放時自動調整 可設置滾動寬度、背景顏色、滾動速度、迴圈選項 ...
  • 我們在使用npm下載包的時候,一般是下載在npm官網發佈過的。可以指定版本,指定依賴等等。 但是,對於一個團隊或公司,需要從自己的工作賬號拉取代碼,npm是直接支持從git倉庫安裝的。 最近遇到的一個問題,只能從我自己fork的vue2-scrollbar項目安裝。雖然已有人PR,但是作者不更新了。 ...
  • 在編寫功能時總是會出現很多意想不到的問題,現在就講講我遇到的兩個問題,通過舉一個相似的例子來解說。 <1> 元素互相獨立,不存在包含於被包含 選擇城市的按鈕,為它綁定點擊事件,點擊後就彈出城市列表層,城市列表層設置了position與z-index的值來進行佈局,然後再點擊選擇城市按鈕,點擊事件就不 ...
  • 綜合類 前端知識體系 前端知識結構 Web前端開發大系概覽 Web前端開發大系概覽-中文版 Web Front-end Stack v2.2 免費的編程中文書籍索引 前端書籍 前端免費書籍大全 前端知識體系 免費的編程中文書籍索引 智能社 - 精通JavaScript開發 重新介紹 JavaScri ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...