日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

在實現(xiàn)前端功能的過程中,搜索功能是一個常見的需求。Vue作為一種流行的前端框架,也能很好地支持搜索功能的實現(xiàn)。本文將為大家介紹如何在Vue中實現(xiàn)搜索功能,并提供具體的代碼示例。

一、準備工作

在實現(xiàn)搜索功能之前,我們需要準備一個數(shù)據(jù)源,即一些需要進行搜索的數(shù)據(jù)。在本文的示例中,我們使用一個包含書籍信息的數(shù)組作為數(shù)據(jù)源,格式如下:

books: [
  {
    id: 1,
    title: 'Vue.js實戰(zhàn)',
    author: '梁灝',
    publisher: '人民郵電出版社'
  },
  {
    id: 2,
    title: 'JavaScript高級程序設計',
    author: 'Nicholas C.Zakas',
    publisher: '人民郵電出版社'
  },
  {
    id: 3,
    title: '深入淺出Node.js',
    author: '樸靈',
    publisher: '人民郵電出版社'
  },
  // 更多書籍信息...
]

登錄后復制

除了準備數(shù)據(jù)源外,我們還需要在Vue中添加一個input元素用于接收用戶的輸入。

<input v-model="keyword" placeholder="請輸入關鍵字進行搜索">

登錄后復制

其中,v-model指令是Vue中實現(xiàn)雙向數(shù)據(jù)綁定的一種方式,它將input元素中用戶輸入的值與Vue實例中的keyword屬性進行綁定,實現(xiàn)數(shù)據(jù)的同步更新。

二、使用computed實現(xiàn)搜索

Vue提供了一種特殊的屬性computed,可以方便地對數(shù)據(jù)進行處理,并在數(shù)據(jù)發(fā)生改變時自動更新。我們可以使用computed來實現(xiàn)搜索功能。

在本例中,我們可以定義一個computed屬性filteredBooks,用于存儲搜索之后的結果。

computed: {
  filteredBooks() {
    return this.books.filter((book) => {
      return book.title.indexOf(this.keyword) !== -1 || 
             book.author.indexOf(this.keyword) !== -1 ||
             book.publisher.indexOf(this.keyword) !== -1;
    })
  }
}

登錄后復制

在上述代碼中,我們將搜索關鍵字this.keyword與每一本書籍的標題、作者和出版社進行比對,如果匹配成功則返回對應的書籍信息。這里使用了數(shù)組的filter()方法,它會返回一個新數(shù)組,包含所有滿足條件的元素。

最后,我們可以在頁面中使用v-for指令循環(huán)渲染filteredBooks數(shù)組中的每一個元素。

<ul>
  <li v-for="book in filteredBooks" :key="book.id">
    {{ book.title }} - {{ book.author }} - {{ book.publisher }}
  </li>
</ul>

登錄后復制

在上述代碼中,v-for指令會將filteredBooks數(shù)組中的每一個元素渲染為一個li元素,并綁定一個唯一的key值。這里我們使用每一本書籍的id作為key值,保證每一個元素的唯一性。

三、使用watch實現(xiàn)搜索

除了computed屬性外,Vue還提供了一種叫做watch的屬性,可以實現(xiàn)“監(jiān)聽”數(shù)據(jù)的變化,并在數(shù)據(jù)變化時觸發(fā)相應的操作。我們也可以利用watch屬性來實現(xiàn)搜索功能。

在本例中,我們可以定義一個watch屬性searchResult,在keyword屬性變化時更新搜索結果。

watch: {
  keyword() {
    this.searchResult = this.books.filter((book) => {
      return book.title.indexOf(this.keyword) !== -1 || 
             book.author.indexOf(this.keyword) !== -1 ||
             book.publisher.indexOf(this.keyword) !== -1;
    })
  }
}

登錄后復制

在上述代碼中,keyword屬性變化時會觸發(fā)watch屬性中的函數(shù)。我們將新的搜索結果存儲在searchResult屬性中,并在頁面中使用v-for指令循環(huán)渲染搜索結果。

<ul>
  <li v-for="book in searchResult" :key="book.id">
    {{ book.title }} - {{ book.author }} - {{ book.publisher }}
  </li>
</ul>

登錄后復制

四、完整示例代碼

現(xiàn)在,我們已經成功實現(xiàn)了Vue中的搜索功能。以下是完整的代碼示例。

<template>
  <div>
    <input v-model="keyword" placeholder="請輸入關鍵字進行搜索">
    <ul>
      <li v-for="book in filteredBooks" :key="book.id">
        {{ book.title }} - {{ book.author }} - {{ book.publisher }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      books: [
        {
          id: 1,
          title: 'Vue.js實戰(zhàn)',
          author: '梁灝',
          publisher: '人民郵電出版社'
        },
        {
          id: 2,
          title: 'JavaScript高級程序設計',
          author: 'Nicholas C.Zakas',
          publisher: '人民郵電出版社'
        },
        {
          id: 3,
          title: '深入淺出Node.js',
          author: '樸靈',
          publisher: '人民郵電出版社'
        },
        // 更多書籍信息...
      ],
      keyword: ''
    }
  },
  computed: {
    filteredBooks() {
      return this.books.filter((book) => {
        return book.title.indexOf(this.keyword) !== -1 || 
              book.author.indexOf(this.keyword) !== -1 ||
              book.publisher.indexOf(this.keyword) !== -1;
      })
    }
  },
  /*watch: {
    keyword() {
      this.searchResult = this.books.filter((book) => {
        return book.title.indexOf(this.keyword) !== -1 || 
               book.author.indexOf(this.keyword) !== -1 ||
               book.publisher.indexOf(this.keyword) !== -1;
      })
    }
  }*/
}
</script>

登錄后復制

以上是使用computed屬性實現(xiàn)搜索功能的示例代碼。如果需要使用watch屬性實現(xiàn)搜索功能,只需取消相關代碼注釋即可。

總結

本文介紹了如何在Vue中實現(xiàn)搜索功能,并提供了具體的代碼示例。無論是使用computed屬性還是watch屬性,都能有效實現(xiàn)搜索功能。在實際應用中,我們可以根據(jù)具體需求選擇合適的方法,以達到更好的用戶體驗。

分享到:
標簽:VUE 如何在 搜索功能
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

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

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

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

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定