最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年10月12日 15:37:20   作者:FungLeo  
這篇文章主要為大家詳細介紹了VUEJS實戰(zhàn)之構建基礎并渲染出列表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言

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

縱向比較了N款前端框架,最終選擇了VUE,為什么呢?理由如下:

 1.angular 前途不明,1.x學習曲線高,并且好像被放棄了,而2則還沒有正式推出.
 2.react 比較厲害,但是沒接觸.
 3.VUE簡單,通過上手,比較適合我的思維和水平.
 4.vue有中文文檔,我看起來比較舒服.

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

接口簡介

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

API接口介紹截圖

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

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

文件目錄

├─index.shtml          渲染列表頁面
├─content.shtml        渲染詳情頁面
├─inc                  碎片文件
│   ├─bar.html             側邊欄代碼
│   ├─footer.html          版權部分代碼
│   ├─head.html            head區(qū)域調用js等代碼
│   └─header.html          頁頭logo以及導航代碼
└─res                  資源文件
    ├─image
    ├─js
    │  ├─common             我的代碼目錄
    │  │  ├─common.js           公共執(zhí)行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">發(fā)表于 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>

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

靜態(tài)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>

從接口獲取數(shù)據(jù)

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

如下代碼:

$(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));
 }
 });
})

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

成功獲取到數(shù)據(jù)

如上圖所示,我們成功的拿到了數(shù)據(jù).

分析數(shù)據(jù)

數(shù)據(jù)詳情

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

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

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

如上代碼所示,我們需要循環(huán)的內容包括
 1.作者頭像url
 2.作者用戶名
 3.發(fā)布時間
 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) 這個函數(shù)就可以了.

引用封裝好的代碼

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

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

成功獲取到數(shù)據(jù)

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

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

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

vue 渲染代碼

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

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知識點
循環(huán)數(shù)據(jù) http://vuejs.org.cn/api/#v-for

JS代碼部分

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

我們來看一下效果:

成功獲取到數(shù)據(jù)

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

小結

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

 附錄

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

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

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

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

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

相關文章

  • vue.js學習之UI組件開發(fā)教程

    vue.js學習之UI組件開發(fā)教程

    前端開發(fā)中,隨著業(yè)務的增多,出于效率的考慮,我們對于組件化開發(fā)的需求也越來越迫切。下面這篇文章主要給大家介紹了關于vue.js之UI組件開發(fā)的相關資料,文中介紹的非常詳細,需要的朋友們下面來一起看看吧。
    2017-07-07
  • 詳解Vue2 添加對scss的支持

    詳解Vue2 添加對scss的支持

    這篇文章主要介紹了詳解Vue2 添加對scss的支持,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • vue關于this.$refs.tabs.refreshs()刷新組件方式

    vue關于this.$refs.tabs.refreshs()刷新組件方式

    這篇文章主要介紹了vue關于this.$refs.tabs.refreshs()刷新組件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue3.0翻牌數(shù)字組件使用方法詳解

    vue3.0翻牌數(shù)字組件使用方法詳解

    這篇文章主要為大家詳細介紹了vue3.0翻牌數(shù)字組件使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue3.0安裝Element?ui及矢量圖使用方式

    vue3.0安裝Element?ui及矢量圖使用方式

    這篇文章主要介紹了vue3.0安裝Element?ui及矢量圖使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • vue.js中修飾符.stop的用法解析

    vue.js中修飾符.stop的用法解析

    這篇文章主要介紹了vue.js中修飾符.stop的用法解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue中實現(xiàn)代碼高亮與語法著色的方法介紹

    vue中實現(xiàn)代碼高亮與語法著色的方法介紹

    在Vue的開發(fā)過程中,我們經常需要展示代碼片段或者進行代碼高亮與語法著色,Vue提供了多種方式來實現(xiàn)代碼高亮與語法著色,本文將為你詳細介紹這些方法,需要的朋友可以參考下
    2023-06-06
  • vue全局過濾器概念及注意事項和基本使用方法

    vue全局過濾器概念及注意事項和基本使用方法

    這篇文章主要給大家分享了vue全局過濾器概念及注意事項和基本使用方法,下面文字圍繞vue全局過濾器的相關資料展開具體的詳細內容,需要的朋友可以參考一下,希望對你有所幫助
    2021-11-11
  • Vue+Koa2 打包后進行線上部署的教程詳解

    Vue+Koa2 打包后進行線上部署的教程詳解

    這篇文章主要介紹了Vue+Koa2 打包后如何進行線上部署,給大家分享了一些問題及解決方法,需要的朋友可以參考下
    2019-07-07
  • Vue實現(xiàn)contenteditable元素雙向綁定的方法詳解

    Vue實現(xiàn)contenteditable元素雙向綁定的方法詳解

    contenteditable是所有HTML元素都有的枚舉屬性,表示元素是否可以被用戶編輯。本文將詳細介紹如何實現(xiàn)contenteditable元素的雙向綁定,需要的可以參考一下
    2022-05-05

最新評論

泾阳县| 四川省| 大连市| 奎屯市| 惠安县| 延安市| 鹿泉市| 方城县| 和硕县| 潢川县| 密云县| 鸡东县| 盘山县| 城市| 安国市| 湘乡市| 横峰县| 曲沃县| 名山县| 来宾市| 溆浦县| 阳城县| 炎陵县| 山东省| 泸州市| 建平县| 大竹县| 合作市| 荔浦县| 百色市| 奉节县| 如东县| 汝南县| 名山县| 淳化县| 海丰县| 宾川县| 北川| 长顺县| 乳山市| 庆城县|