Vue 封裝Input組件 雙向通信

子組件

<template><div class="box"><div class="box-left"><input @blur="handleBlur"  v-model="localInput" class="box-left-input"> </div><div class="box-right"><p style="font-size: 10px;margin-left: 10px">{{ unit }}</p></div></div>
</template><script>module.exports = {data() {return {//初始進行一個賦值localInput: this.defaultInputValue}},props: {//父將數據傳過來defaultInputValue: {type: [String, Number],default: 0,},unit: {type: String,default: '℃',},//父傳過來的失焦方法onBlur: {type: Function,default: null}},watch: {//監聽輸入框的變化 輸入框一變化就將新值傳給父localInput(val) {this.$emit('update:defaultInputValue', val)},//當父修改了defaultInputValue這個數據 同步輸入框的內容defaultInputValue(val) {this.localInput = val}},methods:{handleBlur(event) {// 如果父組件傳入了 onBlur 方法,則調用if (this.onBlur && typeof this.onBlur === 'function') {this.onBlur(event.target.value, event);}// 觸發默認的 blur 事件this.$emit('blur', event.target.value, event);}}
};
</script>

父組件調用

<h-input 
:default-input.sync="waterPressureSet" 
@blur="handlePressureChange" :unit="'MPa'"></h-input><h-input :default-input-value.sync="waterPressureSet" @blur="handlePressureChange" :unit="'MPa'"></h-input>data(){return{waterPressureSet:0,}
},
methods:{handlePressureChange(val){//這里的val返回的當輸入框失去焦點的時候的數據console.log(val)}
}
1. 沒有?.sync?時(單向數據流):

通常,Vue 遵循單向數據流:父組件通過?prop?向子組件傳遞數據,子組件通過?事件?向父組件通知變化。

2. 使用?.sync?時(語法糖):

.sync?是一個語法糖,它自動幫你完成了上面那套“接收prop + 監聽事件”的模板代碼。

<h-input :default-input-value.sync="waterPressureSet" :unit="'MPa'"></h-input>

等價于:

<h-input :default-input-value="waterPressureSet" @update:defaultInputValue="waterPressureSet = $event":unit="'MPa'">
</h-input>
3. 子組件的要求:

為了讓?.sync?正常工作,子組件?必須?在想要更新屬性值時觸發一個特定格式的事件:

  • 事件名必須為update:${propName}

  • 其中?propName?是你用?.sync?綁定的屬性名(這里是?default-input-value,在JS中會被轉換為駝峰命名?defaultInputValue

export default {props: ['defaultInputValue', 'unit'],methods: {onInputChange(newValue) {// 當輸入值改變時,觸發事件來更新父組件的值this.$emit('update:defaultInputValue', newValue);}}
}

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

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

相關文章

伽馬(gamma)變換記錄

此只記錄伽馬變換原理及其應用結果&#xff08;文章所有內容基于數字圖像處理-岡薩雷斯&#xff09;&#xff0c;和直接用MATLAB代碼生成伽馬變換代碼。一、原理伽馬變換的公式很簡答 就是一個有規律的冪運算 公式如下&#xff1a;一般在圖像中進行應用是 C1 y為不同值時r的輸…

電路學習(六)三極管

三極管是一種電流驅動元器件&#xff08;MOS管為電壓驅動&#xff09;&#xff0c;在電路中可以充當開關&#xff0c;放大電流等作用。本文章參考了尚硅谷的視頻資料。1. 什么是三極管&#xff1f;三極管又被稱為晶體三極管&#xff08;Bipolar Junction Transistor&#xff0c…

配置docker常見問題

輸入sudo yum install -y yum-utils device-mapper-persistent-data lvm2出現Cannot find a valid baseurl for repo: base/7/x86_64一、檢查網絡輸入ping www.baidu.com出現PING www.a.shifen.com (220.181.111.1) 56(84) bytes of data. 64 bytes from 220.181.111.1 (220.18…

Python 實戰:票據圖像自動矯正技術拆解與落地教程

在日常辦公自動化&#xff08;OA&#xff09;或財務數字化場景中&#xff0c;拍攝的票據常因角度問題出現傾斜、變形&#xff0c;不僅影響視覺呈現&#xff0c;更會導致 OCR 文字識別準確率大幅下降。本文將從技術原理到代碼實現&#xff0c;手把手教你用 Python 打造票據圖像自…

vue3+TS項目配置unocss

配置unocss &#xff08;1&#xff09;安裝依賴 npm i unocss unocss/preset-uno unocss/preset-attributify -D npm install unocss/transformer-directives&#xff08;2&#xff09;根目錄新建uno.config.ts文件 import { defineConfig } from "unocss"; impor…

嵌入式硬件工程師的每日提問

一、LDO與DC-DC的對比1&#xff09;同&#xff1a;兩者都是將不穩定的直流輸入電壓轉換為穩定的直流輸出電壓。2&#xff09;異&#xff1a;LDO&#xff1a;線性調節&#xff0c;通過內部功率晶體管&#xff0c;工作在線性區&#xff0c;穩定輸出電壓。類比&#xff1a;將湍急的…

從零到一使用Linux+Nginx+MySQL+PHP搭建的Web網站服務器架構環境——LNMP(下)

從零到一使用LinuxNginxMySQLPHP搭建的Web網站服務器架構環境——LNMP&#xff08;上&#xff09;https://coffeemilk.blog.csdn.net/article/details/151350565 一、Nginx與PHP-FPM整合原理 1.1、PHP-FPM配置文件 Nginx與PHP-FPM整合原理序號說明1 PHP-FPM是一個第三方的Fast…

論文閱讀-Correlate and Excite

文章目錄1 背景2 創新點3 方法3.1 總體結構3.2 代價體計算3.3 引導式代價體激勵&#xff08;GCE&#xff09;3.4 TopK視差回歸4 效果參考資料1 背景 在IGEV中構建幾何編碼體CGC_GCG?時用到了本文將要描述的CoEx&#xff0c;IGEV中沒有說明為什么要這樣做&#xff0c;本文就是…

探索大語言模型(LLM):Open-WebUI的安裝

前言 Open-WebUI 是一款專為大模型設計的開源可視化交互工具&#xff0c;它通過類 ChatGPT 的直觀界面&#xff0c;讓用戶無需代碼即可管理、調試和調用本地或云端的大語言模型&#xff08;LLMs&#xff09;&#xff0c;成為私有化部署的便捷工具&#xff0c;本文將介紹如何部…

企業遠程訪問方案選擇:何時選內網穿透,何時需要反向代理?

企業遠程訪問需求日益增長&#xff0c;無論是遠程辦公、分支互聯還是服務發布&#xff0c;選擇合適的網絡方案都至關重要。內網穿透和反向代理是兩種常見的技術手段&#xff0c;但它們的設計目標和適用場景截然不同。本文將客觀分析兩者的特點&#xff0c;幫助企業做出更合理的…

ARM指令集(Instruction Set)細節

ARM指令集(Instruction Set)細節 本文旨在深入探討 ARM 指令集(Instruction Set)的細節。這是一個非常廣泛的主題&#xff0c;我會將其分解為關鍵概念、不同版本的區別以及核心特性&#xff0c;并提供一些示例。 ARM 指令集的核心在于 RISC&#xff08;精簡指令集計算機&#x…

Vue基礎知識-Vue集成 Element UI全量引入與按需引入

一、方式一&#xff1a;全量引入 Element UI全量引入即一次性加載 Element UI 所有組件和樣式&#xff0c;優點是配置簡單&#xff0c;適合快速開發&#xff1b;缺點是打包體積較大&#xff0c;生產環境可能存在冗余。1. 安裝 Element UI全量引入只需安裝 Element UI 核心依賴&…

leetcode26(字母異位詞分組)

給你一個字符串數組&#xff0c;請你將 字母異位詞 組合在一起。可以按任意順序返回結果列表。示例 1:輸入: strs ["eat", "tea", "tan", "ate", "nat", "bat"]輸出: [["bat"],["nat","…

光平面標定 (Laser Plane Calibration) 的原理和流程

光平面標定 (Laser Plane Calibration) 是線激光3D相機系統中最為關鍵且精巧的一步,它直接決定了最終的測量精度。 核心目標 光平面標定的目標是:精確地求出激光器發射出的那個扇形激光平面,在相機坐標系下的數學方程。 這個方程通常表示為一般式: Ax + By + Cz + D = 0…

項目1——單片機程序審查,控制系統項目評估總結報告

執行摘要 本報告對基于STM32F103RET6的老虎機控制系統進行了全面的技術評估。通過深入分析代碼結構、系統架構、安全機制和潛在風險&#xff0c;為項目的進一步開發和部署提供專業建議。 核心發現 ? 系統架構: 設計合理&#xff0c;模塊化程度高?? 安全性: 存在輸入驗證和并…

【Qt應用程序】

Qt應用程序摘要概述快速開始Qt在線下載與安裝Visual Studio開發Qt項目VS配置Qt擴展VS創建Qt項目配置qDebug調試信息配置源程序的字符集項目結構對象樹與內存回收基礎數據類型信號槽定時器窗口QWidgetQMainWindowQDialog窗口布局窗口中添加右鍵菜單控件按鈕類容器類自定義控件事…

機器學習實戰(一): 什么是機器學習

機器學習&#xff1a;讓機器學會思考的魔法前言 在當今數字化的浪潮中&#xff0c;人工智能無疑是最引人注目的技術之一&#xff0c;而機器學習正是其核心驅動力。它不再是科幻電影中的遙遠設想&#xff0c;而是已經滲透到我們日常生活的方方面面&#xff0c;從智能推薦到自動駕…

java流水號生成方式

1、基于時間戳生成流水號利用當前時間戳生成流水號&#xff0c;可以確保唯一性。通過格式化時間戳&#xff0c;可以生成固定位數的流水號。SimpleDateFormat sdf new SimpleDateFormat("yyyyMMddHHmmssSSS"); String serialNumber sdf.format(new Date());特點&…

前端工具大全:前端開發工具、前端調試工具、前端性能優化工具與構建工具的對比與最佳實踐

在現代前端開發中&#xff0c;工具鏈已經成為開發效率與代碼質量的關鍵。無論是 編輯器與 IDE、構建與打包工具、調試工具 還是 性能優化工具&#xff0c;每一個環節都有成熟的解決方案。 然而&#xff0c;工具太多也容易讓團隊選擇困難&#xff1a;該選 VS Code 還是 WebStorm…

ABAP 使用ECHARTS實現圖表展示

最近發現ECHARTS可以整合到SAP中的開源項目&#xff0c;可以絲滑的在SAP中展示各種圖表&#xff0c;還是相當驚艷的。 ECHARTS官方網站&#xff1a;https://echarts.apache.org/examples/zh/index.html 今天順手在開發環境成功安裝了&#xff0c;做下記錄&#xff1a; 1、ABA…