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

vue3【偵測|過濾|數(shù)組方法】數(shù)據變化偵測&&信息篩選過濾&&常用數(shù)組方法.filter() .map() .forEach(). find()

這篇具有很好參考價值的文章主要介紹了vue3【偵測|過濾|數(shù)組方法】數(shù)據變化偵測&&信息篩選過濾&&常用數(shù)組方法.filter() .map() .forEach(). find()。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

文章簡介

內容回顧點擊快速復習v-for??????。本期內容主要是數(shù)據變化的檢測信息的過濾篩選以及常用的數(shù)組方法??
(.filter().map()、.forEach().find()、.findIndex().some()、.every()、.fill())。

延展一下:??????

  • 關于數(shù)據的變化——比如,對表格數(shù)據進行的搜索,當你清除輸入框內容時,頁面內的數(shù)據會還原到初始狀態(tài),即未經篩選的狀態(tài)。這時就需要對數(shù)據檢測,檢測搜索框中的數(shù)據,消失則還原原始狀態(tài)
  • 關于信息的篩選——比如,對表格數(shù)據進行篩選,篩選和搜索可以說是綁在一起的,搜索意味著在表格數(shù)據中進行篩選,并將篩選過后的結果返回給頁面。
  • 后期會專門出一期搜索框實現(xiàn)搜索過濾的推文

主要內容

數(shù)組變化偵測

變更方法

Vue 能夠偵聽響應式數(shù)組的變更方法,并在它們被調用時觸發(fā)相關的更新。這些變更方法包括:

  • ??push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • sort()
  • reverse()

??替換一個數(shù)組

變更方法,顧名思義,就是會對調用它們的原數(shù)組進行變更。相對地,也有一些不可變 (immutable) 方法,例如 filter(),concat()slice(),這些都不會更改原數(shù)組,而總是返回一個新數(shù)組。當遇到的是非變更方法時,我們需要將舊的數(shù)組替換為新的。??????

// `items` 是一個數(shù)組的 ref
// 箭頭函數(shù)的應用
items.value = items.value.filter((item) => item.message.match(/Foo/))

你可能認為這將導致 Vue 丟棄現(xiàn)有的 DOM 并重新渲染整個列表——幸運的是,情況并非如此。
Vue 實現(xiàn)了一些巧妙的方法來最大化對 DOM 元素的重用,因此用另一個包含部分重疊對象的數(shù)組來做替換,仍會是一種非常高效的操作。

??展示過濾或排序后的結果

有時,我們希望顯示數(shù)組經過 過濾排序后的內容,而不實際變更或重置原始數(shù)據。在這種情況下,你可以創(chuàng)建返回已過濾或已排序數(shù)組的計算屬性。

舉例來說:
ts

const numbers = ref([1, 2, 3, 4, 5])

const evenNumbers = computed(() => {
  // 必須有一個返回值return
  return numbers.value.filter((n) => n % 2 === 0) 
  // filter過濾numbers數(shù)組中滿足條件的數(shù)據
  // 【注意】這里用的是全等于"==="
})

template

<li v-for="n in evenNumbers">{{ n }}</li>

在計算屬性不可行的情況下 (例如在多層嵌套的 v-for 循環(huán)中),你可以使用以下方法??????
ts

const sets = ref([
  [1, 2, 3, 4, 5],
  [6, 7, 8, 9, 10]
]) // 定義一個響應式數(shù)組

// 定義函數(shù) 也可以用箭頭函數(shù)
function even(numbers) { 
  // filter過濾有效數(shù)據
  return numbers.filter((number) => number % 2 === 0)
}

template

<ul v-for="numbers in sets"> 
<!--第一層是sets里的元素numbers-->
  <li v-for="n in even(numbers)">{{ n }}</li> 
  <!--第二層是過濾出numbers中符合要求的n-->
</ul>

在計算屬性中使用 reverse()sort() 的時候務必小心!這兩個方法將變更原始數(shù)組,計算函數(shù)中不應該這么做。請在調用這些方法之前創(chuàng)建一個原數(shù)組的副本:

- return numbers.reverse()
+ return [...numbers].reverse()

??常見數(shù)組方法

??.filter()

filter() 方法創(chuàng)建一個新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組符合條件的所有元素

  • 是否改變原數(shù)組:否
  • 是否對空數(shù)組進行檢測:否

語法

const arr= [32, 33, 16, 40];
const arr1 = arr.filter(item => item >= 18)
console.log(arr)   // [32, 33, 16, 40]
console.log(arr1)  // [32, 33, 40]

??.map()

map() 方法返回一個新數(shù)組,數(shù)組中的元素為原始數(shù)組元素調用函數(shù)處理后的值
map() 方法按照原始數(shù)組元素順序依次處理元素。

  • 是否改變原數(shù)組:否
  • 是否對空數(shù)組進行檢測:否

語法

const arr= [4, 9, 16, 25];
const arr1 = arr.map(item => item+2)
console.log(arr)   // [4, 9, 16, 25]
console.log(arr1)  // [6, 11, 18, 27]

??.forEach()

forEach() 方法用于調用數(shù)組的每個元素,并將元素傳遞給回調函數(shù)。

注意: forEach() 對于空數(shù)組是不會執(zhí)行回調函數(shù)的。

tips: forEach()中不支持使用break(報錯)和return(不能結束循環(huán)),有需要時可使用常規(guī)的for循環(huán)。

語法

const arr= [4, 9, 16, 25];
const arr1 = [];
arr.forEach(item => arr1.push(item))
console.log(arr)   // [4, 9, 16, 25]
console.log(arr1)  // [4, 9, 16, 25]

??.find()

find() 方法返回通過測試(函數(shù)內判斷)的數(shù)組的第一個元素的值。

find() 方法為數(shù)組中的每個元素都調用一次函數(shù)執(zhí)行:

  • 當數(shù)組中的元素在測試條件時返回 true 時, find() 返回符合條件的元素,之后的值不會再調用執(zhí)行函數(shù)。
  • 如果沒有符合條件的元素返回 undefined

注意:

  • find() 對于空數(shù)組,函數(shù)是不會執(zhí)行的。
  • find() 并沒有改變數(shù)組的原始值。

語法

const arr= [4, 9, 16, 25];
const b = arr.find(item => item>10)
const c = arr.find(item => item<1)
console.log(arr)   // [4, 9, 16, 25]
console.log(b)  // 16
console.log(c)  // undefined

.findIndex()

findIndex() 方法返回傳入一個測試條件(函數(shù))符合條件的數(shù)組第一個元素位置

findIndex() 方法為數(shù)組中的每個元素都調用一次函數(shù)執(zhí)行:

  • 數(shù)組中的元素在測試條件時返回 true 時, findIndex() 返回符合條件的元素的索引位置,之后的值不會再調用執(zhí)行函數(shù)。
  • 如果沒有符合條件的元素返回 -1

注意:

  • findIndex() 對于空數(shù)組,函數(shù)是不會執(zhí)行的。
  • findIndex() 并沒有改變數(shù)組的原始值。

語法

const arr= [4, 9, 16, 25];
const b = arr.findIndex(item => item>10)
const c = arr.findIndex(item => item<1)
console.log(arr)   // [4, 9, 16, 25]
console.log(b)  // 2
console.log(c)  // -1

.some()

some() 方法用于檢測數(shù)組中的元素是否滿足指定條件(函數(shù)提供)。

some() 方法會依次執(zhí)行數(shù)組的每個元素

  • 如果有一個元素滿足條件,則表達式返回true , 剩余的元素不會再執(zhí)行檢測。
  • 如果沒有滿足條件的元素,則返回false

注意

  • some() 不會對空數(shù)組進行檢測。
  • some() 不會改變原始數(shù)組。

語法

const arr= [4, 9, 16, 25];
const b = arr.some(item => item>10)
const c = arr.some(item => item<1)
console.log(arr)   // [4, 9, 16, 25]
console.log(b)  // true
console.log(c)  // false

.every()

every() 方法用于檢測數(shù)組所有元素是否都符合指定條件(通過函數(shù)提供)。

every() 方法使用 指定函數(shù)檢測數(shù)組中的所有元素

  • 如果數(shù)組中檢測到有一個元素不滿足,則整個表達式返回 false ,且剩余的元素不會再進行檢測。
  • 如果所有元素都滿足條件,則返回 true。

注意

  • every() 不會對空數(shù)組進行檢測。
  • every() 不會改變原始數(shù)組。

語法

const arr= [4, 9, 16, 25];
const b = arr.every(item => item>10)
const c = arr.every(item => item>1)
console.log(arr)   // [4, 9, 16, 25]
console.log(b)  // false
console.log(c)  // true

.fill()

fill() 方法用于將一個固定值替換數(shù)組的元素。

注意

  • fill() 不會對空數(shù)組進行填充
  • fill() 會改變原始數(shù)組。

語法

const arr1= [4, 9, 16, 25];
const b = arr1.fill(100);
const arr2= [4, 9, 16, 25];
const c = arr2.fill(100, 2, 4)  // 2為開始填充的起始位置,4為結束位置(不包含)
const arr3= [];
const d = arr3.fill(100);
console.log(arr1)   // [100, 100, 100, 100]
console.log(b)  // [100, 100, 100, 100]
console.log(arr2)  // [4, 9, 100, 100]
console.log(c)  // [4, 9, 100, 100]
console.log(arr3)  // []
console.log(d)  // []

summary

以上就是關于數(shù)據變化的檢測信息的過濾篩選以及常用的數(shù)組方法的相關內容。
如果當中有什么錯誤和不足,歡迎各位大佬指出?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-695767.html

下期預告

vue watch監(jiān)聽器

vue+typescript實戰(zhàn)——搜索篩選功能

到了這里,關于vue3【偵測|過濾|數(shù)組方法】數(shù)據變化偵測&&信息篩選過濾&&常用數(shù)組方法.filter() .map() .forEach(). find()的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • vue2 如何監(jiān)聽數(shù)組的變化

    在Vue 2中,底層是通過重寫數(shù)組的原型方法來實現(xiàn)對數(shù)組變化的監(jiān)聽。具體來說,Vue 2使用了一個名為Observer的類來劫持數(shù)組的原型方法,使其在調用這些方法時能夠觸發(fā)相應的變化通知。 當Vue 2初始化一個響應式對象時,如果對象是一個數(shù)組,Vue會將數(shù)組的原型指向一個經過

    2024年02月12日
    瀏覽(22)
  • Vue.set()方法+收集表單數(shù)據+過濾器

    目錄 收集表單數(shù)據 過濾器 給對象追加一個屬性: Vue.set(對象,‘追加屬性名’ ,\\\'追加屬性值\\\') this.$set(對象,‘追加屬性名’ ,\\\'追加屬性值\\\') 注??:對象不能是vue實例,或者vue實例的根數(shù)據對象? ? 例子: 總結: 若:input type=\\\'text\\\' /,則v-model收集的是value值,用戶輸入的就

    2024年02月05日
    瀏覽(23)
  • vue3監(jiān)聽路由的變化

    vue3監(jiān)聽路由的變化

    可以使用監(jiān)聽 router.currentRoute.value 的值,,來監(jiān)聽路由的變化。 引入: setup使用 : 控制臺輸出的值 newValue : 如果我們只需要監(jiān)聽當前路由 name 的變化,就可以這么監(jiān)聽 router.currentRoute.value.name immediate:true //true 就表示會立即執(zhí)行。(watch默認綁定,頁面首次加載時,是不會執(zhí)行

    2024年02月12日
    瀏覽(21)
  • Vue2 、vue3 監(jiān)聽對象的變化

    Vue2 、vue3 監(jiān)聽對象的變化

    vue響應式也叫作數(shù)據雙向綁定 MVVM模型 (Model-Viem-ViewModel) DOM listeners:實現(xiàn)了頁面與數(shù)據的綁定,當頁面操作數(shù)據的時候 DOM 和 Model 也會發(fā)生相應的變化 Data Bindings:??實現(xiàn)了數(shù)據與頁面的綁定,當數(shù)據發(fā)生變化的時候會自動渲染頁面 2.1? 實現(xiàn)原理 vue實現(xiàn)數(shù)據響應式,是通過

    2024年02月04日
    瀏覽(29)
  • vue3-模板中的變化

    vue3-模板中的變化

    vue2 比較讓人詬病的一點就是提供了兩種雙向綁定: v-model 和 .sync ,在 vue3 中,去掉了 .sync 修飾符,只需要使用 v-model 進行雙向綁定即可。 為了讓 v-model 更好的針對多個屬性進行雙向綁定, vue3 作出了以下修改 當對自定義組件使用 v-model 指令時,綁定的屬性名由原來的 va

    2024年02月12日
    瀏覽(15)
  • vue3 監(jiān)聽props 的變化

    再三說明 僅僅個人學習用,不誤導別人 我覺得props 會創(chuàng)建對應的屬性,去接受這些值,比如傳遞一個ref的基本值 age props.age = age.value 傳遞一個ref的引用值 person props.person= person.value 傳遞一個reactive的引用值 person props.person= person 最開始時候,props指向了一個響應式的reactive pe

    2024年02月11日
    瀏覽(34)
  • vue3 微信掃碼登錄及獲取個人信息實現(xiàn)的三種方法

    一、流程: 微信提供的掃碼方式有兩種,分別是: 根據文檔我們可以知道關于掃碼授權的模式整體流程為: 二、前置條件: 微信開發(fā)官網 申請: appid: ‘’, // 后端提供 redirect_uri: ‘’, // 后端提供 AppSecret // 后端提供 三、具體登錄實現(xiàn) 實現(xiàn)方式一: 使用vue插件: 使用: 結果

    2023年04月13日
    瀏覽(28)
  • vue3 antd項目實戰(zhàn)——table表格的自定義篩選【純前端filters過濾、自定義篩選table表格數(shù)據】

    vue3 antd項目實戰(zhàn)——table表格的自定義篩選【純前端filters過濾、自定義篩選table表格數(shù)據】

    文章內容 文章鏈接 vue3 antd table 表格的基礎搭建 https://blog.csdn.net/XSL_HR/article/details/128072745 ant design vue 組件庫的引入與使用 https://blog.csdn.net/XSL_HR/article/details/127396384 在 后臺管理系統(tǒng) 中,我們需要 對大量的數(shù)據進行展示、處理和操作 ,table表格也因此無處不在。而 ant design

    2024年01月25日
    瀏覽(28)
  • 19-vue2到vue3的一些變化

    Vue 2.x 有許多全局 API 和配置。 例如:注冊全局組件、注冊全局指令等。 Vue3.0中對這些API做出了調整: 將全局的API,即: Vue.xxx 調整到應用實例( app )上 2.x 全局 API( Vue ) 3.x 實例 API ( app ) Vue.config.xxxx app.config.xxxx Vue.config.productionTip 移除 Vue.component app.component Vue.directive

    2024年02月07日
    瀏覽(23)
  • Vue3優(yōu)雅地監(jiān)聽localStorage變化

    Vue3優(yōu)雅地監(jiān)聽localStorage變化

    目錄 ??前言? ?? 為什么要這樣做? ?? 思路 ?? 實現(xiàn) ?? 實現(xiàn)中介者模式 ?? 重寫localStorage ?? 實現(xiàn)useStorage hook ?? 測試 ?? 使用localStorage ?? 監(jiān)聽localStorage變化 ?? 結果 ????????最近在研究框架,也仔細用了Vue3一些功能,今天分享一次我的實踐: ????????原生的

    2024年02月08日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包