国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

VUEJS實戰之構建基礎并渲染出列表(1)

2019-11-20 09:43:18
字體:
來源:轉載
供稿:網友

前言

我的JavaScript水平比較一般.好吧,是相當的一般.因此,對于最新的前端框架技術,實在是有點困難,但現實讓我必須面對.因此,學習是唯一的出路.

縱向比較了N款前端框架,最終選擇了VUE,為什么呢?理由如下:
 1.angular 前途不明,1.x學習曲線高,并且好像被放棄了,而2則還沒有正式推出.
 2.react 比較厲害,但是沒接觸.
 3.VUE簡單,通過上手,比較適合我的思維和水平.
 4.vue有中文文檔,我看起來比較舒服.

既然決定學習vue,那么最好的學習方法就是實戰.偶然看到 cNodeJs.Org 論壇有公開的api可以使用,這太方便了.于是,我決定用這個公開的api來寫一個demo.

接口簡介

這是 cNodeJs.Org 公開提供的的接口.當然,他不僅僅是用來給我們前端用的.可以用在各種程序上.接口地址是http://cnodejs.org/api 通過這個頁面,詳細介紹了相關的內容.

API接口介紹截圖

他們提供的接口是完全的,也就是說我們可以通過這些接口再做一個他們這樣的論壇.

項目計劃
 1.做一個列表頁面,可以讀取cNodeJs的列表內容.
 2.做一個詳情頁面,在列表頁面點擊鏈接,進入詳情頁面.
 3.采用ssi技術實現html代碼的復用.相關內容搜索ssi+shtml了解.
 4.css代碼使用sass預編譯. 

文件目錄

├─index.shtml          渲染列表頁面
├─content.shtml        渲染詳情頁面
├─inc                  碎片文件
│   ├─bar.html             側邊欄代碼
│   ├─footer.html          版權部分代碼
│   ├─head.html            head區域調用js等代碼
│   └─header.html          頁頭logo以及導航代碼
└─res                  資源文件
    ├─image
    ├─js
    │  ├─common             我的代碼目錄
    │  │  ├─common.js           公共執行js
    │  │  └─method.js           自定義方法js
    │  ├─jquery             jquery源碼目錄
    │  ├─plugins            其他插件目錄
    │  │  └─laypage             laypage 分頁插件
    │  └─vue                VUE源碼目錄
    └─style
        ├─style.scss        sass源文件
        ├─style.css         編譯好的css 文件
        ├─base
        └─scss

下載我的源文件 https://github.com/fengcms/vue-cNodeJsOrgTest

開始寫代碼

首先是按照上面的文件目錄設計,開始往里面寫文件.res里面是資源目錄,你可以稍微看下,或者知道里面是什么就可以了.

其實重點就是 index.shtml和content.shtml兩個文件而已.

準備首頁列表html文件

<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8"> <title>title</title> <link rel="stylesheet" href="res/style/style.css"></head><body> <header class="header"> <h1 class="logo"> <a href="index.html" title="cnNodeJs.Org Home By FungLeo">cnNodeJs.Org Home By FungLeo</a> </h1> <nav class="nav"> <ul> <li>導航列表</li> </ul> </nav> </header> <section class="home"> <section class="main"> <ul class="list"> <li> <i class="user_ico"> <img src="#頭像url" alt="用戶名"> <span>用戶名</span> </i> <time class="time">發表于 5 天前</time> <a class="talk" href="content.html?鏈接ID">帖子標題</a> </li> </ul> <div class="page"></div> </section> <aside class="bar"> <h3>本頁說明</h3> ... </aside> </section> <footer class="copy"> 版權說明 </footer> <div class="go_top"></div></body></html>

如上代碼,是我首先寫出來的靜態頁面.配合我的css,效果如下圖所示:

靜態html效果圖

完整代碼請從github 里面獲取
 引入vue&jquery等js文件

<script src="res/js/jquery/jquery-2.2.3.min.js"></script><script src="res/js/vue/vue.min.js"></script><script src="res/js/common/common.js"></script>

從接口獲取數據

首先,無論怎么樣,我們先要從接口拿到數據才能接著往下干.我們通過jQuery用ajax方法把數據拿過來再說.

如下代碼:

$(function(){ $.ajax({ type:'get', url:"http://cnodejs.org/api/v1/topics", dataType: 'json', success: function(data){ if (data.success){ console.log(data) }else{ alert(JSON.stringify(data)); } }, error: function(data){ alert(JSON.stringify(data)); } });})

代碼如上,我們看下瀏覽器控制臺,截圖如下:

成功獲取到數據

如上圖所示,我們成功的拿到了數據.

分析數據

數據詳情

如上圖所示,數據里面包含了如下內容
 1.作者
1.作者頭像url
2.作者用戶名
 2.作者ID
 3.帖子內容
 4.發布時間
 5.是否是精華
 6.帖子ID
 7.最后回復時間
 8.回復數量
 9.歸屬標簽
 10.帖子標題
 11.是否置頂
 12.瀏覽統計 

數據接口如上.當然,如果是做全功能的論壇的話,這些數據都是有作用的.而在我的項目中,有很多是用不到的.我們來看下我需要那些.

<li> <i class="user_ico"> <img src="#頭像url" alt="用戶名"> <span>用戶名</span> </i> <time class="time">發表于 5 天前</time> <a class="talk" href="content.html?鏈接ID">帖子標題</a></li>

如上代碼所示,我們需要循環的內容包括
 1.作者頭像url
 2.作者用戶名
 3.發布時間
 4.帖子ID
 5.帖子標題 

沒有問題,我們所需要的內容,接口全部都是有的.

封裝 ajax 代碼

ajax 代碼雖然不長,但是我看著還是比較難受.因此,我用下面的代碼進行封裝

// ajax get json 方法function getJson(url,func){ $.ajax({ type:'get', url:url, dataType: 'json', success: function(data){ if (data.success){ func(data); }else{ alert("接口調用失敗"); } }, error: function(data){ alert(JSON.stringify(data)); } });}

如上,在需要的地方,我們只需要用 getJson(url,func) 這個函數就可以了.

引用封裝好的代碼

$(function(){ var url = "http://cnodejs.org/api/v1/topics"; getJson(url,function(data){ console.log(data); });});

修改成這樣之后,我們再來看下,看看能不能打印出來我們所需要的數據?如下圖所示:

成功獲取到數據

沒有任何問題,我們依然獲得了數據.我們在把這個回調的函數再封裝一下,改成下面的代碼

$(function(){ var url = "http://cnodejs.org/api/v1/topics"; getJson(url,pushDom);});function pushDom(data){ console.log(data);}

好,如果沒有出錯的話,絕對還是能夠打印出來接口數據的.這樣操作后,我們的代碼就無比的簡練,并且可閱讀性大大增加了.而我們下面要做的事情,就是在 pushDom(data) 這個函數里面去做就好了.

vue 渲染代碼

首先,我們需要在頁面中用 vue 的方法寫入我們要插入的數據.

html代碼部分

<li v-for="info in data"> <i class="user_ico"> <img src="{{ info.author.avatar_url }}" alt="{{ info.author.loginname }}"> <span>{{ info.author.loginname }}</span> </i> <time class="time">{{ info.create_at }}</time> <a class="talk" href="content.html?{{ info.id }}">{{ info.title }}</a></li>1

vue知識點
循環數據 http://vuejs.org.cn/api/#v-for

JS代碼部分

function pushDom(data){ var vm = new Vue({ el: '.list', data: data });}

我們來看一下效果:

成功獲取到數據

好,非常興奮,短短的幾行代碼,我們就成功用vue將列表給渲染出來了.

小結
 1.ajax獲取數據是關鍵
 2.了解一點點vue的內容,就可以上手了.
 3.構建項目時,代碼和文件一定要清晰明了.

 附錄

VUE官方網站
cNodeJs Api 詳細介紹
本系列教程源碼下載

VUEJS 實戰教程第一章,構建基礎并渲染出列表
VUEJS 實戰教程第二章,修復錯誤并且美化時間
VUEJS 實戰教程第三章,利用laypage插件實現分頁

本文由FungLeo原創

首發地址:http://blog.csdn.net/FungLeo/article/details/51649074

本文已被整理到了《Vue.js前端組件學習教程》,歡迎大家學習閱讀。

關于vue.js組件的教程,請大家點擊專題vue.js組件學習教程進行學習。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漾濞| 旌德县| 保山市| 鄄城县| 原阳县| 巴林右旗| 阜宁县| 永寿县| 百色市| 余姚市| 苍梧县| 黔南| 搜索| 吉林省| 高台县| 奎屯市| 庆元县| 阳朔县| 彰化县| 施秉县| 昌邑市| 西乌珠穆沁旗| 长泰县| 盘山县| 理塘县| 金湖县| 长子县| 察雅县| 桓台县| 洱源县| 洮南市| 茌平县| 来宾市| 宜城市| 宾川县| 鸡东县| 富民县| 白城市| 松滋市| 天津市| 长春市|