亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:52010
  • 待審:67
  • 小程序:12
  • 文章:1106242
  • 會(huì)員:784

在我的網(wǎng)絡(luò)筆記中查看這篇文章!

我們正在使我們的商店變得越來越人性化,今天我們將在我們的電子商務(wù)商店改進(jìn)方面又邁出一步。在之前的文章中,我們已經(jīng)添加了分頁、排序和過濾器,但它們只是我們模板的一部分,沒有任何功能,現(xiàn)在是時(shí)候修復(fù)它了,所以讓我們開始為今天的工作構(gòu)建一個(gè)簡單的計(jì)劃,并繼續(xù)改進(jìn)我們的商店nuxt.js.

只是想提醒一下,您可以在這里查看我們正在構(gòu)建的演示,以及這里的源代碼。

    分頁。將產(chǎn)品列表劃分為可管理的頁面。
    通過用戶友好的界面實(shí)現(xiàn)排序功能。
    根據(jù)相關(guān)產(chǎn)品屬性(例如類別)實(shí)施過濾器。

概述了需要改進(jìn)的關(guān)鍵領(lǐng)域后,是時(shí)候卷起袖子深入研究實(shí)施細(xì)節(jié)了。我們的目標(biāo)是通過向之前實(shí)現(xiàn)的分頁、排序和過濾功能添加功能,將 nuxt.js 電子商務(wù)商店轉(zhuǎn)變?yōu)橛脩粲押玫钠脚_(tái)。讓我們從處理分頁功能開始,該功能會(huì)將我們的產(chǎn)品列表劃分為可管理、可抓取的頁面,以增強(qiáng)瀏覽體驗(yàn)。

1.分頁。將產(chǎn)品列表劃分為可管理的頁面。

之前我們在商店頁面添加了分頁元素,我喜歡它的設(shè)計(jì),所以我不會(huì)改變css樣式,只改變分頁功能。

什么是分頁?分頁是一種用于將大量內(nèi)容(例如產(chǎn)品列表)劃分為單獨(dú)頁面的技術(shù)。這有助于通過一次僅加載內(nèi)容的子集來提高網(wǎng)站性能,使用戶更輕松地瀏覽信息。

在我們的例子中,產(chǎn)品列表將是我們的“大內(nèi)容”,所以讓我們修改產(chǎn)品數(shù)組,但不要直接在商店?duì)顟B(tài)中修改它,讓我們在商店 getter 中渲染之前修改它。對于打開的產(chǎn)品商店和內(nèi)部狀態(tài),添加將存儲(chǔ)“currentpage”和“itemsperpage”值的分頁對象,然后在 getter 內(nèi)部創(chuàng)建新的 getter“gpaginateditem”,它將接受項(xiàng)目列表并逐部分返回該列表。該 getter 將計(jì)算頁面的開始值和結(jié)束值,并在這些值之間“切片”項(xiàng)目列表:

gpaginateditems: (state) => (items) => {
    const start = (state.pagination.currentpage - 1) * state.pagination.itemsperpage;
    const end = start + state.pagination.itemsperpage;
    return items.slice(start, end);
},

登錄后復(fù)制

下一步,我們需要?jiǎng)?chuàng)建僅修改“currentpage”值的操作,它們將用于更改頁面。

asetpage(page) {
    this.pagination.currentpage = page;
},
anextpage() {
    if (this.pagination.currentpage  1) {
        this.pagination.currentpage--;
    }
}

登錄后復(fù)制

現(xiàn)在我們可以轉(zhuǎn)到我們的商店頁面,其中有一些更改:

更新產(chǎn)品列表部分,我們需要添加 getter,它將使用產(chǎn)品列表作為參數(shù)并一次僅渲染一頁;

<div class="products__content">
    <productcard v-for="product in productsstore.gpaginateditems(productsstore.gproductslist)" :key="product.id" :product="product"></productcard>
</div>

登錄后復(fù)制

更新我們的分頁部分,添加將更改頁面的點(diǎn)擊事件(箭頭的上一頁和下一頁并將頁面設(shè)置為每個(gè)數(shù)字),實(shí)現(xiàn)僅顯示第一頁、最后一頁和當(dāng)前頁面的功能;

<div class="products__pagination">
    <ul class="page">
<li class="page__btn"><nuxticon name="chevron-left-solid"></nuxticon></li>
        <li v-if="productsstore.gcurrentpage &gt; 2" class="page__numbers">1</li>
        <li v-if="productsstore.gcurrentpage &gt; 2" class="page__dots">...</li>
        <li v-for="page in displayedpages" :key="page" class="page__numbers" :class="{ active: productsstore.gcurrentpage === page }">
            {{ page }}
        </li>
        <li v-if="productsstore.gcurrentpage &lt; productsstore.gtotalpages - 1" class="page__dots">...</li>
        <li v-if="productsstore.gcurrentpage &lt; productsstore.gtotalpages - 1" class="page__numbers">{{ productsstore.gtotalpages }}</li>
        <li class="page__btn"><nuxticon name="chevron-right-solid"></nuxticon></li>
    </ul>
</div>

登錄后復(fù)制

是的,就是這樣,現(xiàn)在我們只需要重新啟動(dòng) nuxt 開發(fā)服務(wù)器,添加更多測試產(chǎn)品,并嘗試分頁行為。

我喜歡它的外觀和工作原理,但我們沒有時(shí)間玩,需要繼續(xù)前進(jìn)。

2. 通過用戶友好的界面實(shí)現(xiàn)排序功能。

在我們的設(shè)計(jì)中,我們已經(jīng)有一個(gè)包含所有排序選項(xiàng)的下拉菜單,因此我們只需要接收用戶選擇的選項(xiàng)并對我們所有的產(chǎn)品進(jìn)??行排序,但不要忘記它應(yīng)該與我們的分頁同時(shí)實(shí)現(xiàn)。

請打開產(chǎn)品存儲(chǔ)并添加一個(gè)新變量“排序”,默認(rèn)值為“流行度”。讓我們使用我們將在操作中對產(chǎn)品進(jìn)行排序的變體,在這種情況下,我們需要?jiǎng)?chuàng)建一個(gè)新的排序操作并添加一個(gè)條件語句,該條件語句將根據(jù)排序值修改我們的產(chǎn)品列表。

asetsort(sort) {
    this.sort = sort;
    if (sort === 'ltoh') {
        return this.productslist.sort((a, b) =&gt; a.price - b.price);
    } else if (sort === 'htol') {
        return this.productslist.sort((a, b) =&gt; b.price - a.price);
    }
},

登錄后復(fù)制

另外,不要忘記添加一個(gè)將返回排序語句值的 getter。接下來,我們需要再次修改我們的商店頁面,并簡單地使用新值更新排序下拉列表:

<div class="products__header--select">
    <p>sort by</p>
    <select v-model="sort"><option selected value="popularity">popularity</option>
<option value="ltoh">price: low to high</option>
<option value="htol">price: high to low</option></select>
</div>

登錄后復(fù)制

并將 setter-getter 添加到我們的排序值中:

sort: {
    get() {
        return this.productsstore.gsort;
    },
    set(value) {
        this.productsstore.asetsort(value);
        this.productsstore.asetpage(1);
    }
}

登錄后復(fù)制

太好了,重啟 nuxt 開發(fā)服務(wù)器并檢查結(jié)果:

3. 根據(jù)相關(guān)產(chǎn)品屬性(例如類別)實(shí)施過濾器。

這是我們今天的第三部分,也是最后一部分,我們將為不同的產(chǎn)品類別添加和配置過濾器。為此,打開產(chǎn)品商店并將“categoryfilter”變量添加到狀態(tài)中,然后添加“asetcategoryfilter”操作,該操作將簡單地更新我們的過濾器,并根據(jù)該過濾器值,我們將返回過濾后的產(chǎn)品列表。修改“gproductslist”getter,它將按類別鍵過濾所有項(xiàng)目,并僅返回具有某些特定類別的項(xiàng)目。

gproductslist: (state) =&gt; {
    let products = state.productslist;
    if (state.categoryfilter) {
        products = products.filter(el =&gt; el.category === state.categoryfilter);
    }
    if (state.categoryfilter === 'all') {
        products = state.productslist
    }
    return products;
},

登錄后復(fù)制

您可以在該列表中添加任意數(shù)量的過濾器,并使用戶可以選擇他們正在尋找的產(chǎn)品。

此外,我們還需要修改商店模板中的過濾器本身:


登錄后復(fù)制

  • {{ category }}

    現(xiàn)在,只要用戶按下某個(gè)過濾類別,我們的應(yīng)用程序就會(huì)返回已過濾的產(chǎn)品列表。

    在本文中,我們通過實(shí)現(xiàn)三個(gè)基本功能來優(yōu)化 nuxt.js 商店的電子商務(wù)導(dǎo)航體驗(yàn):分頁、排序和過濾。我們首先添加分頁功能,將產(chǎn)品列表劃分為可管理的頁面,以獲得更好的性能和用戶體驗(yàn)。接下來,我們實(shí)現(xiàn)了排序選項(xiàng),允許客戶根據(jù)受歡迎程度、價(jià)格從低到高、價(jià)格從高到低對產(chǎn)品進(jìn)行排序,增強(qiáng)用戶偏好。最后,我們結(jié)合了基于產(chǎn)品類別的過濾器,使客戶能夠快速縮小搜索結(jié)果范圍。在整個(gè)實(shí)施過程中,我們保持了用戶友好的界面,確保了無縫且直觀的導(dǎo)航體驗(yàn)。通過優(yōu)化這些關(guān)鍵功能,我們不僅提高了電子商務(wù)平臺(tái)的整體可用性,還可能提高客戶滿意度、轉(zhuǎn)化率和自然流量。

    學(xué)習(xí)某些東西的最佳變體是自己制作它,同樣的事情也適用于編碼,但如果您需要本教程的源代碼,您可以在這里獲取。

分享到:
標(biāo)簽:優(yōu)化 分頁 功能 排序 過濾
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 52010

    網(wǎng)站

  • 12

    小程序

  • 1106242

    文章

  • 784

    會(huì)員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定