vue父子組件通信實現模糊搜索功能

我遇到的問題:

我的搜索框在父頁面,靜態數據都在子頁面。怎么實現模糊查詢數據?
昨天的嘗試:先把搜索的內容數據存到session里,然后從session里拿,
結果:存是存進去了,卻拿不到。應該也是可以拿到的,但是我不會。。。。

今天先學習一下組件通信的知識,再來解決這個問題。

下面來記一下學習筆記:

1.組件通信:組件與組件之間的數據傳遞

1.1組件通信定義

組件之間的數據是獨立的,一個組件無法直接訪問其他組件的數據。如果在一個

組件中想使用其他組件的數據,可以用組件通信方案來解決這個問題。

1.2組件之間關系

父子關系:直接包裹的關系。用props和$emit傳遞數據
非父子關系:各自獨立,沒有任何關系。用provide&inject 傳遞或者用evenbus傳遞。

我遇到的問題是父子關系之間的傳遞,先針對性學習這塊兒內容,然后活學活用把我遇到的問題解決再說。

2.父子組件通信如何實現?

2.1 父組件你給過props把數據傳給子組

(1)父組件中定義一個屬性iput4,并且給組件標簽,以添加屬性的方式來傳值

<template><div>我是父組件<Index :input4="input4"> 我是子組件</Index></div>
</template><Script>//引入子組件import Index from "@/views/front/Index.vue";export default {data(){return {input4:''}},front:{Idenx}}</Script>

(1)子組件中,使用props定義需要接收的數據

export default {props:['input4'],}

2.2子組件利用$emit 通知父組件修改更新

3.使用router-view組件往子頁面傳數據

可以給父組件中router-view設置參數屬性,子組件使用props接收參數。

**第一步:**父組件定義屬性。本功能想傳輸的屬性是用戶在搜索框輸入的數據input4。因此要用v-model綁定獲取這個輸入框的內容。

父組件的搜索框樣式代碼:

注意:v-model綁定輸入框的內容input4。

 <el-input placeholder="請輸入內容" type="text" v-model="input4"><i slot="prefix" class="el-input__icon el-icon-search"></i>
</el-input>

**第二步:**父組件data中定義屬性。

  data () {return {input4:''}},

第三步: 子組件中使用props接收這個屬性

export default {props:['input4'],
}

**第四步:**父組件中綁定要傳的參數

<div class="main-body"><router-view v-bind:input4="input4" />//:input4是父組件的屬性,input4是子組件的屬性。這里的屬性一定要各自的組件定義的屬性保持一致。</div>

**第五步:**渲染使用數據

1.在html直接渲染方式

<p> {{input4}}</p>

搞定!!!!!!

搜索框的數據傳過去了,那么怎么實現模糊搜索呢?

如何使用vue實現模糊搜索(純前端)?

因為搜索不能刷新頁面,而是實時響應的根據搜索內容展示數據,這里要在computed中定義計算函數。

computed 是 Vue.js 中的一個屬性,用于根據其他屬性或狀態計算出一個新的屬性值。計算屬性是基于響應式的,當其依賴的屬性或狀態發生變化時,它會自動更新。這使得計算屬性非常適合用于處理復雜的邏輯或需要根據其他屬性或狀態進行計算的情況。

咱們的需求是要根據input4的變化,展示的數據也發生變化,因此非常符合計算屬性。

在input4從父組件傳過來之后,

第一步:

在computed定義新屬性search。返回值把分頁處理過的dataList。

 computed:{search(){console.log(888)let filter = this.articles.filter(item =>      item.title.includes(this.input4));this.total = filter.lengthlet list = splitList(filter, 9)this.dataList = list[this.pageNum - 1]return  this.dataList}},

**第二步:**data里需要定義的屬性

  articles: [{id:1,title: '基于 Springboot+Vue+Bootstrap的電影票訂票購票系統源碼,可用于畢業設計、課程設計、練手學習', img: require('@/assets/imgs/dianyingpiao-3.jpg'), route:'/articleDetail', tabs:['Springboot2', 'Vue2', '不分離','BootStrap','票務系統','有文檔']},{id:2,title: '基于 Springboot+Vue+Bootstrap的在線文件管理系統源碼,可用于畢業設計、課程設計、練手學習', img: require('@/assets/imgs/wenjian-2.png'), route:'/WenjianDetail',tabs:['Springboot2', 'Vue2', '不分離', 'BootStrap', '工具類','有文檔']},],tabs: ['Springboot2', 'Springboot3', 'SSM', 'Vue2', 'Vue3', '分離', '小程序', 'Bootstrap','小程序', '購物系統', '企業系統', '票務系統', '校園系統', '工具類','Element-UI', '不分離', '有文檔', 'JSP', '博客論壇',],pageNum: 1,dataList: [],total: null,

第三步:

methods里面寫一個點擊頁面跳轉的方法

  methods: {handleCurrentChange(pageNum) {this.pageNum = pageNum;},}

**第四步:**HTML中渲染數據

因為search是數組,里面存的是鍵值對對象,因此要循環獲取里面的數據

<el-col :span="8" v-for="item in search" :key="item.id">

搞定!!!!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42782.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42782.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42782.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Django學習收尾

啟動項目命令 python manage.py runserver 文件上傳功能實現 title "Form上傳"if request.method "GET":form UpForm()return render(request, upload_form.html, {"form": form, "title": title})form UpForm(datarequest.POS…

Java對象創建究竟是在棧上還是堆上??

在 Java 中&#xff0c;對象的創建通常情況下是在堆上。 基本數據類型&#xff08;如 byte、short、int、long、float、double、char&#xff09;在方法內聲明時&#xff0c;其值會存儲在棧上。除了基本數據類型之外的所有對象&#xff0c;都是由 Java 虛擬機&#xff08;JVM&…

python入門基礎知識·二

""" # Python介紹 # Python注釋 # 單行注釋&#xff1a; # # 多行注釋&#xff1a; r """""" # Python輸出和輸入 # print: 輸出 # input: 輸入 ①會讓程序暫停&#xff0c;②得到的是字符串內容 int(&…

Linux Mac 安裝Higress 平替 Spring Cloud Gateway

Linux Mac 安裝Higress 平替 Spring Cloud Gateway Higress是什么?傳統網關分類Higress定位下載安裝包執行安裝命令執行腳本 安裝成功打開管理界面使用方法configure.shreset.shstartup.shshutdown.shstatus.shlogs.sh Higress官網 Higress是什么? Higress是基于阿里內部的…

Vue指令詳解與實操運用 - 編程魔法

在Vue.js的世界里&#xff0c;指令就像是一位魔法師&#xff0c;它們能夠賦予HTML元素以生命&#xff0c;讓網頁與用戶互動起來。今天&#xff0c;我們就來揭開這些指令的神秘面紗&#xff0c;看看它們是如何在我們的日常開發中發揮作用的。 1. v-text 和 v-html - 文字與內容的…

思考:Java內存模型和硬件內存模型

前言 前一陣在看volatile的原理&#xff0c;看到內存屏障和緩存一致性&#xff0c;發現再往底層挖就挖到了硬件和Java內存模型。這一塊是自己似懂非懂的知識區&#xff0c;我一般稱之為知識混沌區。因此整理這一篇文章。 什么是內存模型&#xff08;Memory Model&#xff09;…

CentOS6用文件配置IP模板

CentOS6用文件配置IP模板 到 CentOS6.9 , 默認還不能用 systemctl , 能用 service chkconfig sshd on 對應 systemctl enable sshd 啟用,開機啟動該服務 ### chkconfig sshd on 對應 systemctl enable sshd 啟用,開機啟動該服務 sudo chkconfig sshd onservice sshd start …

未羽研發測試管理平臺

突然有一些覺悟&#xff0c;程序猿不能只會吭哧吭哧的低頭做事&#xff0c;應該學會怎么去展示自己&#xff0c;怎么去宣傳自己&#xff0c;怎么把自己想做的事表述清楚。 于是&#xff0c;這兩天一直在整理自己的作品&#xff0c;也為接下來的找工作多做點準備。接下來…

LT7911UX 國產原裝 一拖三 edp 轉LVDS 可旋轉 可縮放

2.一般說明 該LT7911UX是一種高性能Type-C/DP1.4a到MIPI或LVDS芯片的VR/顯示應用。HDCP RX作為HDCP轉發器的上游&#xff0c;可以與其他芯片的HDCP TX配合實現轉發器功能。 對于DP1.4a輸入&#xff0c;LT7911UX可配置為1/2/4通道。自適應均衡使其適用于長電纜應用&#xff0c;最…

Junior.Crypt.2024 CTF Web方向 題解WirteUp 全

Buy a cat 題目描述&#xff1a;Buy a cat 開題 第一思路是抓包改包 Very Secure App 題目描述&#xff1a;All secrets become clear 開題 亂輸一個密碼就登陸成功了&#xff08;不是弱口令&#xff09; 但是回顯Your role is: user 但是有jwt&#xff01;&#xff01;&a…

深入理解基本數據結構:鏈表詳解

引言 在計算機科學中&#xff0c;數據結構是存儲、組織和管理數據的方式。鏈表是一種重要的線性數據結構&#xff0c;廣泛應用于各種編程場景。在這篇博客中&#xff0c;我們將詳細探討鏈表的定義、特點、操作及其在不同編程語言中的實現。 什么是鏈表&#xff1f; 鏈表是一種…

Mobile ALOHA前傳之VINN, Diffusion Policy和ACT對比

VINNDiffusion PolicyACT核心思想1.從離線數據中自監督學習獲得一個視覺編碼器&#xff1b;2.基于視覺編碼器&#xff0c;從采集的示例操作數據中檢索與當前觀測圖像最相似的N張圖像以及對應的動作&#xff1b;3.基于圖像編碼器的距離對各個動作進行加權平均&#xff0c;獲得最…

Open3D loss函數優化的ICP配準算法(精配準)

目錄 一、概述 1.1ICP的基本步驟 1.2損失函數的設計 二、代碼實現 2.1關鍵函數 2.2完整代碼 三、實現效果 3.1原始點云 3.2配準后點云 3.3計算數據 一、概述 ICP(Iterative Closest Point)配準算法是一種用于對齊兩個點云的經典算法。其目標是通過迭代優化…

Istio實戰教程:Service Mesh部署與流量管理

引言 Istio是一個開源的服務網格&#xff0c;它提供了一種統一的方法來連接、保護、控制和觀察服務。本教程將指導你從零開始部署Istio&#xff0c;并展示如何使用Istio進行基本的流量管理。 環境準備 Kubernetes集群&#xff1a;Istio運行在Kubernetes之上&#xff0c;確保…

W25Q64 Flash存儲器與STM32:硬件與軟件的完美結合案例

摘要 在嵌入式系統中&#xff0c;數據存儲是關鍵組成部分之一。W25Q64 Flash存儲器因其高容量、低功耗和高可靠性&#xff0c;成為STM32微控制器項目中優選的存儲解決方案。本文將展示W25Q64與STM32微控制器集成的案例&#xff0c;包括硬件設計、SPI通信協議實現和軟件編程策略…

記錄在Windows上安裝Docker

在Windows上安裝Docker時&#xff0c;可以選擇使用不同的后端。 其中兩個常見的選擇是&#xff1a;WSL 2&#xff08;Windows Subsystem for Linux 2&#xff09;和 Hyper-V 后端。此外&#xff0c;還可以選擇使用Windows容器。 三者的區別了解即可&#xff0c;推薦用WSL 2&…

我們公司落地大模型的路徑、方法和坑

我們公司落地大模型的路徑、方法和坑 李木子 AI大模型實驗室 2024年07月02日 18:35 北京 最近一年&#xff0c;LLM&#xff08;大型語言模型&#xff09;已經成熟到可以投入實際應用中了。預計到 2025 年&#xff0c;AI 領域的投資會飆升到 2000 億美元。現在&#xff0c;不只…

Thinking--在應用中添加動態水印,且不可刪除

Thinking系列&#xff0c;旨在利用10分鐘的時間傳達一種可落地的編程思想。 水印是一種用于保護版權和識別內容的技術&#xff0c;通常用于圖像、視頻或文檔中。它可以是文本、圖像或兩者的組合&#xff0c;通常半透明或以某種方式嵌入到內容中&#xff0c;使其不易被移除或篡改…

【Linux】多線程_2

文章目錄 九、多線程2. 線程的控制 未完待續 九、多線程 2. 線程的控制 主線程退出 等同于 進程退出 等同于 所有線程都退出。為了避免主線程退出&#xff0c;但是新線程并沒有執行完自己的任務的問題&#xff0c;主線程同樣要跟進程一樣等待新線程返回。 pthread_join 函數…

【代碼隨想錄_Day28】62. 不同路徑 63. 不同路徑 II

Day28 OK&#xff0c;今日份的打卡&#xff01;第二十八天 以下是今日份的總結不同路徑不同路徑 II 以下是今日份的總結 62 不同路徑 63 不同路徑 II 今天的題目難度不低&#xff0c;盡量還是寫一些簡潔代碼 ^?_?^ 不同路徑 思路&#xff1a; 1.確定dp數組&#xff08;dp…