021 用Vue.js搭建一個小說閱讀網站


目錄

1.簡介

2.如何使用vue.js

3.部署api服務器

4.vue.js路由配置

5.實現頁面加載數據

6.測試vue項目

7.在正式環境部署

8.Vue前端代碼下載

 

1.簡介

這是一個使用vue.js + mint-ui + .net core api的小說網站。

最近在學習vue.js,而拋開實踐的學習都是在裝逼,所以結合實際,准備做一個小說網站,這樣麻麻再也不用擔心我在看小說時被不良信息侵擾了哈哈。

首先說明一下,小說數據來源於網絡搜索,並不直接存儲於自己的服務器中,所以,這是一個實時爬小說數據的網站。

應為這里是要說vue.js的部署,所以具體的爬數據我是不會寫出來的,當然了,具體在哪里爬數據,我也不會說明,請大家諒解。

2.如何使用vue.js

vue.js的使用有兩種方式:

1.直接引用js

2.用vue cli生成vue項目

我覺得啊,第一種比較簡單,可以直接與現有項目結合,因為前后端都在一個項目中,所以服務器也只有一個。第二種比較復雜,需要安裝一些vue.js的環境,然后生成獨立的前端項目,所以部署的時候,需要一個前端服務器和一個后端api服務器,所以需要兩個服務器。

不過,為了學習vue,我在這里用的是第二種方式。那么對於一個新手,我們要怎么入門呢?

ps:博主使用的環境是windows 10

1.首先,我們安裝Visual Studio Code,用VsCode來開發vue項目,下載地址:https://code.visualstudio.com/

2.安裝Node.js,因為我們需要使用npm進行編譯,下載地址:http://nodejs.cn/download/

3.安裝完VsCode和Node.js后,我們打開VsCode,點擊“新建終端”,如下圖:

在終端命令行中輸入命令安裝cnpm(中國的npm鏡像):npm install -g cnpm --registry=https://registry.npm.taobao.org

ps:如果下面的命令無法執行,請將所有npm改為cnpm。

4.安裝vue編譯器vue-cli,在終端中輸入命令:npm install -g vue-cli

5.安裝webpack並初始化目錄,在終端中輸入命令:vue init webpack C://MyFirstVueProject

PS:這一步你會發現,在MyFirstVueProject文件夾中,多出了許多文件,這些文件也就構成了你的vue項目

6.進入項目文件夾,在終端中輸入命令:cd C://MyFirstVueProject

7.安裝mint-ui,在終端中輸入命令:npm i mint-ui --save

8.更新所有npm包,在終端中輸入命令:npm install

以上的步驟完成后,你就可以打開VsCode,開始對你的vue項目開發了(vue開發文檔)。貼一張我的項目結構圖:

 

 

3.部署API服務器

因為前后端是兩個服務器,所以,這里我們還需要一個api項目,向前端提供數據支持,這里我用的是.net core,代碼就不寫了。

先看看項目結構和搜索功能的控制器吧:

 

 

 

所以,我其實只提供了3個api:

查詢: /api/SearchNovel/{text}

小說目錄:/api/getcategory/{category}/{guid}

正文:/api/readnovel/{category}/{guid}/{pageGuid}

編譯完成后,部署到服務器中,如圖:

以上數據是后面會用到的。

4.vue.js路由配置

現在,我們繼續我們的vue開發吧~

看到上面我的vue項目結構了吧,已經有了一些vue頁面了

現在,我們要配置路由,使url匹配上頁面,讓頁面跳轉正常進行。

具體配置如下:

 

在右邊的代碼中,我注釋掉了一個mode屬性,它的值是history。

一開始使用history是因為url中會出現#符號,如下圖:

因為覺得這個難看,所以將mode值設置成了history。然而這么設置之后,又出現了新的問題。在我閱讀小說的時候,如果將該頁面保存成書簽,通過書簽再進來,發現出現404錯誤,為什么?

原來是因為這個url是個假地址,直接通過url進來,因為當前頁面沒有路由信息,所以會導致404的問題。於是乎,我將此段代碼注釋掉了。算了,難看就難看點吧。

還有一個要划重點,那就是代碼中scrollBehavior屬性,按照圖中設置,可以使頁面跳轉后,滾動條始終保持在頂端。

5.實現頁面加載數據

路由配置完了,說明頁面可以正常跳轉了,接下來該是數據的顯示了,話不多說,直接上圖,紅框標注重點~,我們以小說正文頁面為例:

created是頁面加載時會調用的方法,在這里,我們去獲取數據就可以了。

但是在點擊下一頁后,頁面的位置好像不對,不是在最頂端,前面不是說過在路由設置屬性就可以了嗎?其實還少了一步,如下圖:

6.測試vue項目

這里,我們需要將api服務器ip給設置一下,如下圖:

我們通過proxyTable進行請求轉發,將以/api/開頭的請求,全部轉發到localhost:5001上, 因為這個是https的,所以需要設置secure。

然后在終端中輸入命令:npm run dev

項目就能運行了,終端會出現網站地址。

7.在正式環境部署

正式環境與測試環境不同,正式環境不能使用proxyTable,如此一來,我們要通過相同url來解決跨域,就需要用到一些請求轉發的工具,這里我用的是nginx。

1.部署vue站點

1.先在IIS中配置一個站點

 

在終端中輸入命令:npm run build

將項目的dist文件夾中的所有內容復制到站點根目錄。

2.使用nginx轉發請求

為什么要轉發請求?

答:為了避免數據來源與頁面來源不一致,出現跨域的問題。

PS:這里我並沒有處理cookie的問題,因為沒有用到,有cookie需求請自行百度。

首先我們下載一個nginx的zip文件,解壓。

修改conf文件夾下的配置文件,如圖:

3.效果預覽

訪問10.1.73.14:1800即可

8.Vue前端代碼下載

你們不能怪我沒傳到博客園,這個要博客園背鍋,我是有證據的,如下圖!

然后我就去csdn傳了,需要1積分下載,嗯,這也不能怪我,csdn去背鍋吧!

下載地址:https://download.csdn.net/download/u010418661/10776344

 

我的博客即將同步至騰訊雲+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=3ckelci0aw4kk


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM