国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue前端:幾種搜索框功能實現(xiàn)

這篇具有很好參考價值的文章主要介紹了Vue前端:幾種搜索框功能實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

相信很多朋友遇到需要在網(wǎng)頁上增加一個搜索框的功能,本文簡單介紹兩種搜索框的實現(xiàn)。
搜索框的功能一般分為:
(1)即時檢索,即搜索框輸入內(nèi)容自動檢索,會隨著搜索內(nèi)容的不斷輸入,改變界面的顯示
(2)點擊搜索按鈕再開始搜索

以下分別介紹這兩種搜索框的簡單實現(xiàn)方式。


一、搜索框輸入內(nèi)容自動檢索

實現(xiàn)搜索框輸入內(nèi)容自動檢索功能,可以再分為兩種情況實現(xiàn)。

(1)檢索到輸入新的內(nèi)容后,就自動向后端發(fā)送查找請求(即時搜索)

這種設(shè)計,類似于現(xiàn)在的百度搜索,就是在搜索框輸入一段內(nèi)容后,會自動發(fā)起一次查找數(shù)據(jù)請求,界面自然就顯示新的內(nèi)容。
優(yōu)點:
這種設(shè)計會顯的很智能,不需要點搜索框即可檢索,搜索起來更加快速高效,使用起來更加跟手。
缺點:
1)需要搜索的內(nèi)容可能是一部分一部分輸入的,每次搜索框新增內(nèi)容就去搜索,往往不能得到真正想要的結(jié)果;
2)如果分段輸入搜索內(nèi)容的次數(shù)過多,會導(dǎo)致請求服務(wù)器響應(yīng)的次數(shù)過多,一個用戶在完成一次有效的檢索過程中,可能需要多次的請求服務(wù)器響應(yīng),服務(wù)器性能、網(wǎng)絡(luò)資源等會被嚴重浪費,同時使用用戶過多可能導(dǎo)致服務(wù)器響應(yīng)較慢,嚴重會導(dǎo)致服務(wù)器崩潰。

需要注意: 即時檢索在使用的時候為了不浪費過多資源,往往需要限制發(fā)請求的時間或者需要搜索的內(nèi)容量,即每過一段時間或需要搜索的內(nèi)容量達到一定條件才發(fā)送請求。

以下內(nèi)容來自: input搜索框?qū)崟r檢索功能實現(xiàn)

參考代碼:

methods: {
  //使用_.debounce控制搜索的觸發(fā)頻率
  //準(zhǔn)備搜索
  search: _.debounce(
    function () {
      let that = this;
      //刪除已經(jīng)結(jié)束的請求
      _.remove(sources, function (n) {
        return n.source === null;
      });
      //取消還未結(jié)束的請求
      sources.forEach(function (item) {
        if (item !== null && item.source !== null && item.status === 1) {
          item.status = 0;
          item.source.cancel('取消上一個')
        }
      });

      //創(chuàng)建新的請求cancelToken,并設(shè)置狀態(tài)請求中
      var sc = {
        source: axios.CancelToken.source(),
        status: 1 //狀態(tài)1:請求中,0:取消中
      };
      //這個對象加入數(shù)組中
      sources.push(sc);
      //開始搜索數(shù)據(jù),yourhttp替換成你自己的請求路徑
      axios.get('yourhttp', {
        cancelToken: sc.source.token
      }).then(function (res) {
        //請求成功
        sc.source = null; //置空請求canceltoken

        //TODO這里處理搜索結(jié)果
        console.log(res.data);
        that.result = res.data;

      }).catch(function (thrown) {
        //請求失敗
        sc.source = null; //置空請求canceltoken

        //下面的邏輯其實測試用
        if (axios.isCancel(thrown)) {
          console.log('Request canceled', thrown.message);
        } else {
          //handle error
        }

      });
    },
    500 //空閑時間間隔設(shè)置500ms
  )
}

(2)一次請求搜索到所有可能需要的數(shù)據(jù),然后根據(jù)搜索框中的內(nèi)容進行數(shù)據(jù)過濾

如果:
1)搜索框的內(nèi)容相對固定,不像百度等網(wǎng)站需要對不同的搜索內(nèi)容進行兼容,數(shù)據(jù)庫整體數(shù)據(jù)量也不是很大
2)服務(wù)器性能有限,希望盡量減少請求服務(wù)器響應(yīng)次數(shù)

我們可以采用一次請求搜索到所有可能需要的數(shù)據(jù),然后根據(jù)搜索框中的內(nèi)容進行數(shù)據(jù)過濾,顯示需要的數(shù)據(jù)
為了實現(xiàn)這個效果,我們可以使用Vue的Filter函數(shù)進行數(shù)據(jù)的過濾。過濾器整體分為局部過濾器和全局過濾器。

過濾器具體實現(xiàn)可以參考以下鏈接: Vue.js中過濾器(filter)的使用

我這里再介紹一種過濾器的使用,是我目前在使用的方式,這種方式和鏈接中的使用方式不太相同,相對簡單直接,看起來也很好懂,還能實現(xiàn)多頁面的切換功能。
話不多說上代碼!

result_Lists() {
  let start = (this.pageNo - 1) * this.pageSize; 	//定義顯示的第一條數(shù)據(jù)編號
  let end = start + this.pageSize;		//根據(jù)起始編號和每頁規(guī)定的顯示數(shù)量,定義顯示的最后條數(shù)據(jù)編號
  //返回經(jīng)過過濾的數(shù)據(jù)
  return this.result.filter(item =>
  (item.content && item.content.includes(this.searchContent)) 
  ).slice(start, end);
  //簡單介紹slice(start,end):
  //方法可從已有數(shù)組中返回選定的元素,返回一個新數(shù)組,包含從start到end(不包含該元素)的數(shù)組元素。
}

這種實現(xiàn)方式呢,我個人認為更加簡單直接,很好懂,還能很好的配合多頁面的切換,根據(jù)頁面定義的每頁顯示的數(shù)據(jù)條數(shù)可以自動切換需要顯示的數(shù)據(jù)數(shù)量。

二、點擊搜索按鈕再開始搜索

點擊搜索按鈕再開始搜索應(yīng)該是最常見、最普通、最簡單的一種搜索方式。給搜索按鈕綁定事件,點擊搜索后向后端發(fā)請求,前端根據(jù)后端返回值在頁面顯示即可,這里不再贅述。

Vue前后端交互鏈接: 三、vue前后端交互(輕松入門vue)


總結(jié)

本文介紹了幾種搜索框常見的實現(xiàn)方式,特別推薦的是我在用的過濾器使用方式,實測很好用,很簡單。
希望對大家有用!文章來源地址http://www.zghlxwxcb.cn/news/detail-782768.html

到了這里,關(guān)于Vue前端:幾種搜索框功能實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 高德地圖系列(三):vue項目利用高德地圖實現(xiàn)地址搜索功能

    高德地圖系列(三):vue項目利用高德地圖實現(xiàn)地址搜索功能

    目錄 第一章 效果圖 第二章 源代碼 高德地圖為我們提供了搜索聯(lián)想,以及搜索結(jié)果標(biāo)記,該案例已將基礎(chǔ)功能打通,后續(xù)我們肯定還會對功能有所修改,想實現(xiàn)自己想要的效果,基本上看高德地圖文檔對著改就好了(跟我們用別的工具一樣做即可)? 代碼描述如下: ?注意事

    2024年02月03日
    瀏覽(15)
  • vue3使用高德地圖實現(xiàn)點擊獲取經(jīng)緯度以及搜索功能

    vue3使用高德地圖實現(xiàn)點擊獲取經(jīng)緯度以及搜索功能

    ?話不多說直接上干活 在此之前你需要有高德地圖的 key,這個自己去申請即可 1,首先需要在終端安裝 2,準(zhǔn)備一個容器 3,在需要使用的頁面引入剛才安裝的 4, 5,綁定input框 最后附上css代碼 ???????這個時候就已經(jīng)可以了

    2024年02月12日
    瀏覽(25)
  • 使用vue實現(xiàn)導(dǎo)出Excel功能【純前端】

    使用vue實現(xiàn)導(dǎo)出Excel功能【純前端】

    最近接手一個項目,其中一個需求是將查詢出來table中的數(shù)據(jù)導(dǎo)出為Excel文件,并下載到本地。 問題來了,這種東西,不是應(yīng)該后端去實現(xiàn)更好一些嗎?如果放在前端做,要拿到全部數(shù)據(jù),然后把這些數(shù)據(jù)進行解析,再進行一系列的騷操作轉(zhuǎn)化成Excel文件,假如數(shù)據(jù)量少還好,

    2024年02月10日
    瀏覽(23)
  • ChatGPT 插件 “Consensus“ 實現(xiàn)論文搜索功能;數(shù)據(jù)工程在語言建模中的重要性

    ChatGPT 插件 “Consensus“ 實現(xiàn)論文搜索功能;數(shù)據(jù)工程在語言建模中的重要性

    ?? AI新聞 ?? ChatGPT 插件 “Consensus” 實現(xiàn)論文搜索功能 摘要 :OpenAI 推出了一個名為 “Consensus” 的插件,可在 ChatGPT 上進行論文搜索。用戶只需用一句話描述自己想了解的問題,插件就能從 2 億篇論文中搜索并整理出答案,并附上論文鏈接。插件還可根據(jù)問題寫一篇簡單的

    2024年02月09日
    瀏覽(17)
  • Vue前端實現(xiàn)excel的導(dǎo)入、導(dǎo)出、打印功能

    導(dǎo)入導(dǎo)出依賴: npm install xlsx@0.16.9 npm install xlsx-style@0.8.13 --save 安裝xlsx-style,運行報錯 This relative module was not found: ./cptable in ./node_modules/xlsx-style@0.8.13@xlsx-style/dist/cpexcel.js 解決報錯 在node_modulesxlsx-styledistcpexcel.js 807行 的 var cpt = require(\\\'./cpt\\\' + \\\'able\\\'); 改為: var cpt = cptable; 打印

    2023年04月08日
    瀏覽(24)
  • 前端實現(xiàn)壓縮圖片的功能(vue-element)

    前端實現(xiàn)壓縮圖片的功能(vue-element)

    前言: ? ? ? ? 隨著現(xiàn)在手機像素,拍照功能越來越好,隨之而來的是本地圖片越來越大,那么如何更好的將本地圖片上傳到后端接口呢?這是后臺管理系統(tǒng)常見的場景和頭疼的問題,這里分享下個人的方法。 如下圖所示,從 580kb -? 壓縮后? 150kb 1、父級引入封裝文件 2、首

    2024年02月05日
    瀏覽(21)
  • #vue3 實現(xiàn)前端下載excel文件模板功能

    #vue3 實現(xiàn)前端下載excel文件模板功能

    一、需求: 前端無需通過后端接口,即可實現(xiàn)模板下載功能。 通過構(gòu)造一個 JSON 對象,使用前端常用的 第三方庫 xlsx ,可以直接將該 JSON 對象轉(zhuǎn)換成 Excel 文件,讓用戶下載模板 二、效果: 三、源碼如下:

    2024年01月19日
    瀏覽(128)
  • vue3+emelenui實現(xiàn)前端分頁功能—最簡單

    vue3+emelenui實現(xiàn)前端分頁功能—最簡單

    在一些后臺管理系統(tǒng)或者博客管理系統(tǒng)中分頁功能是很常見的一種服務(wù),因為總不可能把很多數(shù)據(jù)放在一塊,那樣閱讀起來很麻煩,所以需要分頁。也是前后端中最為常見的一個功能 ?先看一下分頁場景的模擬。 ?首先我們要去后端寫點數(shù)據(jù)通過接口給前端: 連接數(shù)據(jù)庫:

    2024年02月09日
    瀏覽(21)
  • 前端js react vue怎么實現(xiàn)在線預(yù)覽doc文檔

    前端js react vue怎么實現(xiàn)在線預(yù)覽doc文檔

    先說結(jié)論: 目前在純前端層面沒有很好的方案,基本都需要服務(wù)端的介入。 優(yōu)點 :簡單易用,無需配置 缺點 :文檔需要支持外網(wǎng)訪問,且文檔會是公開可見的,所以對于一些內(nèi)部敏感的文檔來說,這個顯然是不可行的。 需要后端介入配合 onlyoffice地址 這個也要先在服務(wù)器

    2024年02月15日
    瀏覽(32)
  • Vue2 + element ui el-select 遠程搜索分頁懶加載功能實現(xiàn)

    新建指令 : ? ? ? ? 1、 在 src 目錄下 新建文件夾?directive / loadmore ????????2、在 loadmore 文價夾下新建?elSelectLoadmore.js 和 index.js?文件:???????? ???elSelectLoadmore.js index.js 3、在main 文件中注冊該指令 4、 基于 el-select 封裝 懶加載 遠程搜索框 remoteSelect.vue 組件提示

    2024年01月21日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包