欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VUEJS實(shí)戰(zhàn)之修復(fù)錯(cuò)誤并且美化時(shí)間(2)

 更新時(shí)間:2021年10月12日 15:34:37   作者:FungLeo  
這篇文章主要為大家詳細(xì)介紹了VUEJS實(shí)戰(zhàn)之修復(fù)錯(cuò)誤并且美化時(shí)間,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

上一章中,我們通過基礎(chǔ)的搭建,成功的渲染了列表頁面.但是,其中的問題是很多的.這一章,我們來解決這些問題.

使用 v-bind 綁定數(shù)據(jù).

上一章的代碼,我們渲染出來了頁面.但是如果打開了控制臺(tái),你會(huì)發(fā)現(xiàn)有錯(cuò)誤.如下圖所示:

出錯(cuò)信息

這是因?yàn)轫撁孢M(jìn)來的時(shí)候,會(huì)先執(zhí)行我們的html代碼,而此時(shí),我們的vue還沒開始工作.而我們的代碼如下:

<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>

如上,頁面去解析 src="{{ info.author.avatar_url }}"的時(shí)候,當(dāng)然是找不到這個(gè)圖片路徑的.因此,自然而然會(huì)出錯(cuò).因此,我們需要來處理一下這個(gè)代碼.我們修改為

<img v-bind:src="info.author.avatar_url" v-bind:alt="info.author.loginname">

好,我們刷新一下頁面,這一次,就沒有報(bào)錯(cuò)了.

VUE知識(shí)點(diǎn)

v-bind 綁定屬性 http://vuejs.org.cn/api/#v-bind

補(bǔ)充:

其實(shí),我們打開頁面的時(shí)候,還是可以在一瞬間看到這些 {{ ... }} 的內(nèi)容.雖然這個(gè)不會(huì)報(bào)錯(cuò),但是還是影響了一點(diǎn)點(diǎn)用戶體驗(yàn).這個(gè)時(shí)候,我們可以用 v-text 來輸出這些內(nèi)容,如上,我們把代碼修改為如下:

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

當(dāng)我們把代碼修改成這樣之后,所有的問題就都解決了.

VUE知識(shí)點(diǎn)

v-text 輸出文本 http://vuejs.org.cn/api/#v-text

美化時(shí)間

我們從接口獲取的時(shí)間格式是這樣的2016-06-12T06:17:35.453Z,很顯然,這不是我們想要的效果.我們想要的效果應(yīng)該是這樣的 發(fā)表于2小時(shí)之前 這樣的效果.怎么做呢?

我們需要一個(gè)函數(shù),這個(gè)函數(shù)的作用是給他一段原始的字符串,然后返回一個(gè)我們想要的字符串.

關(guān)于這個(gè)函數(shù)的原理,不是我們的重點(diǎn),這里不解釋,直接看代碼如下:

function goodTime(str){
 var now = new Date().getTime(),
 oldTime = new Date(str).getTime(),
 difference = now - oldTime,
 result='',
 minute = 1000 * 60,
 hour = minute * 60,
 day = hour * 24,
 halfamonth = day * 15,
 month = day * 30,
 year = month * 12,

 _year = difference/year,
 _month =difference/month,
 _week =difference/(7*day),
 _day =difference/day,
 _hour =difference/hour,
 _min =difference/minute;
 if(_year>=1) {result= "發(fā)表于 " + ~~(_year) + " 年前"}
 else if(_month>=1) {result= "發(fā)表于 " + ~~(_month) + " 個(gè)月前"}
 else if(_week>=1) {result= "發(fā)表于 " + ~~(_week) + " 周前"}
 else if(_day>=1) {result= "發(fā)表于 " + ~~(_day) +" 天前"}
 else if(_hour>=1) {result= "發(fā)表于 " + ~~(_hour) +" 個(gè)小時(shí)前"}
 else if(_min>=1) {result= "發(fā)表于 " + ~~(_min) +" 分鐘前"}
 else result="剛剛";
 return result;
}

代碼有借鑒別人的代碼的部分.

好,現(xiàn)在,我們可以通過一個(gè)goodTime(str)的方法函數(shù),來將接口給我們的時(shí)間格式修改為我們想要的.現(xiàn)在的問題就是,我們?cè)趺磥碛眠@個(gè)函數(shù)了.

笨方法,直接修改原始數(shù)據(jù)

首先,我們通過ajax拿到了數(shù)據(jù),然后再把數(shù)據(jù)交給vue進(jìn)行渲染.那我們?cè)谶@個(gè)中間可以進(jìn)行一個(gè)操作,把所有的數(shù)據(jù)全部處理一遍,然后把處理過的數(shù)據(jù)再交給vue去渲染.就可以解決這個(gè)問題了.

說干就干,我們看代碼:

function pushDom(data){
 // 先進(jìn)行遍歷,把數(shù)據(jù)中的所有時(shí)間全部修改一遍
 for (var i = 0; i < data.data.length; i++) {
 data.data[i].create_at = goodTime(data.data[i].create_at);
 };
 // 然后再交給 vue 進(jìn)行渲染
 var vm = new Vue({
 el: '.list',
 data: data
 });
}

好,通過上面的處理,我們?cè)賮砜匆幌伦罱K的頁面效果.如下:

美化時(shí)間效果

成功了.

VUE自定義過濾器方法

上面雖然我們成功了.但是,直接在VUE之前搞了一個(gè)for循環(huán),實(shí)在是有點(diǎn)不太優(yōu)雅.而且,我們要學(xué)習(xí)VUE啊,這算哪門子學(xué)習(xí)呢….

好,我們下面用VUE的自定義過濾器功能來進(jìn)行處理.

官方教程,自定義過濾器 http://vuejs.org.cn/guide/custom-filter.html

 function pushDom(data){
 // 使用vue自定義過濾器把接口中傳過來的時(shí)間進(jìn)行整形
 Vue.filter('time', function (value) {
 return goodTime(value);
 })
 var vm = new Vue({
 el: '.list',
 data: data
 });
}

并且,我們需要修改我們的html部分,如下:

<time class="time"  v-text="info.create_at | time"></time>

好,實(shí)現(xiàn)效果是一模一樣的.但是代碼看上去優(yōu)雅了很多.關(guān)鍵是,我們?cè)谶@個(gè)過程中,學(xué)習(xí)和掌握了自定義過濾器的使用.其實(shí),在很多情況下,接口給我們的數(shù)據(jù)往往是不適合直接在頁面中渲染的,所以這個(gè)功能就是非常重要并且非常常用的了.

小結(jié)
 1.v-bind 綁定元素屬性方法
 2.v-text 輸出文本方法
 3.vue 自定義過濾器的使用

附錄

VUE官方網(wǎng)站
cNodeJs Api 詳細(xì)介紹
本系列教程源碼下載

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue 實(shí)現(xiàn)setInterval 創(chuàng)建和銷毀實(shí)例

    vue 實(shí)現(xiàn)setInterval 創(chuàng)建和銷毀實(shí)例

    這篇文章主要介紹了vue 實(shí)現(xiàn)setInterval 創(chuàng)建和銷毀實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 為什么推薦使用JSX開發(fā)Vue3

    為什么推薦使用JSX開發(fā)Vue3

    這篇文章主要介紹了為什么推薦使用JSX開發(fā)Vue3,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-12-12
  • vue3+elementui-plus實(shí)現(xiàn)一個(gè)接口上傳多個(gè)文件功能

    vue3+elementui-plus實(shí)現(xiàn)一個(gè)接口上傳多個(gè)文件功能

    這篇文章主要介紹了vue3+elementui-plus實(shí)現(xiàn)一個(gè)接口上傳多個(gè)文件,先使用element-plus寫好上傳組件,然后假設(shè)有個(gè)提交按鈕,點(diǎn)擊上傳文件請(qǐng)求接口,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • vue 實(shí)現(xiàn)左右拖拽元素并且不超過他的父元素的寬度

    vue 實(shí)現(xiàn)左右拖拽元素并且不超過他的父元素的寬度

    這篇文章主要介紹了vue 實(shí)現(xiàn)左右拖拽元素并且不超過他的父元素的寬度,需要的朋友可以參考下
    2018-11-11
  • Vue實(shí)現(xiàn)百度下拉提示搜索功能

    Vue實(shí)現(xiàn)百度下拉提示搜索功能

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)百度下拉提示搜索功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • vue實(shí)現(xiàn)彈框遮罩點(diǎn)擊其他區(qū)域彈框關(guān)閉及v-if與v-show的區(qū)別介紹

    vue實(shí)現(xiàn)彈框遮罩點(diǎn)擊其他區(qū)域彈框關(guān)閉及v-if與v-show的區(qū)別介紹

    vue如何簡(jiǎn)單的實(shí)現(xiàn)彈框,遮罩,點(diǎn)擊其他區(qū)域關(guān)閉彈框, 簡(jiǎn)單的思路是以一個(gè)div作為遮罩,這篇文章給大家詳細(xì)介紹了vue實(shí)現(xiàn)彈框遮罩點(diǎn)擊其他區(qū)域彈框關(guān)閉及v-if與v-show的區(qū)別介紹,感興趣的朋友一起看看吧
    2018-09-09
  • vue解決彈出蒙層滑動(dòng)穿透問題的方法

    vue解決彈出蒙層滑動(dòng)穿透問題的方法

    這篇文章主要介紹了vue解決彈出蒙層滑動(dòng)穿透問題的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 詳解Vue之父子組件傳值

    詳解Vue之父子組件傳值

    這篇文章主要介紹了Vue之父子組件傳值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 關(guān)于Vue如何清除緩存的方法詳解

    關(guān)于Vue如何清除緩存的方法詳解

    緩存清除成為克服瀏覽器緩存中過時(shí)內(nèi)容挑戰(zhàn)的關(guān)鍵技術(shù),術(shù)語“緩存清除”是指故意使靜態(tài)資源失效或進(jìn)行版本控制,迫使瀏覽器在發(fā)生更改時(shí)獲取新資源,本文給大家介紹了Vue如何清除緩存,需要的朋友可以參考下
    2023-12-12
  • vue前端el-input輸入限制輸入位數(shù)及輸入規(guī)則

    vue前端el-input輸入限制輸入位數(shù)及輸入規(guī)則

    這篇文章主要給大家介紹了關(guān)于vue前端el-input輸入限制輸入位數(shù)及輸入規(guī)則的相關(guān)資料,文中通過代碼介紹的介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09

最新評(píng)論