最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

el-select單選時(shí)選擇后輸入框的is-focus狀態(tài)并沒有取消問題解決

 更新時(shí)間:2024年01月10日 15:57:31   作者:君子使物,不為物使  
這篇文章主要給大家介紹了關(guān)于el-select單選時(shí)選擇后輸入框的is-focus狀態(tài)并沒有取消問題的解決過程,文中通過圖文以及代碼示例將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下

前言

前兩天在封裝組件的時(shí)候,發(fā)現(xiàn)el-select 單選時(shí),選擇后輸入框的is-focus狀態(tài)并沒有取消,需要手動(dòng)點(diǎn)其它地方才會(huì)取消,于是想著找找為什么

一、通過調(diào)試源碼發(fā)現(xiàn)

輸入框在點(diǎn)擊選項(xiàng)后觸發(fā)blur,緊接著又觸發(fā)了一次focus 1.狀態(tài)樣式由計(jì)算屬性"wrapperKls"控制,又與“isFocused”相關(guān),且handleFocus和isFocused都由useFocusController提供

2.因此找到useFocusController的具體實(shí)現(xiàn),加入console.log就能觀察到focus觸發(fā)情況

查看控制臺(tái)

二、有devTools也可以觀察到,點(diǎn)擊選項(xiàng)后isFocused先變成false,又變成true

實(shí)際上還是上方useFocusController中的handleFocus改變了其值

三、找一下點(diǎn)擊選項(xiàng)后發(fā)生了什么

深扒一下,干了4件事

ctx.emit(UPDATE_MODEL_EVENT, option.value)	// ctx.emit('update:modelValue', val) 更新雙向綁定的值
emitChange(option.value)	// 值改變的情況下調(diào)用 ctx.emit('change', val) 觸發(fā)el-select的change事件
states.visible = false	// 那么這時(shí)又發(fā)生了什么呢?
setSoftFocus()	/* 看起來像是這個(gè)方法導(dǎo)致的
	const _input = input.value || reference.value
    if (_input) {
      _input?.focus()
    }
*/

四、經(jīng)過我的排除大法,有兩種情況會(huì)觸發(fā)的focus事件

  • 由states.visible改變觸發(fā)
  • 由setSoftFocus()方法觸發(fā)

如果想在點(diǎn)擊選項(xiàng)后不觸發(fā)focus,那么就需要同時(shí)注釋這兩行代碼才行
在不破壞代碼功能的情況下,加入一個(gè)方法setSoftBlur和一個(gè)prop
用戶在單選時(shí)如果傳入了autoBlur,那么

 const setSoftBlur = () => {
    const _input = input.value || reference.value
    if (_input) {
      _input?.blur()
    }
  }
	/**
     * @description when select one item, click option will let input blur
     */
    autoBlur: Boolean,

tip:使用setTimeout涉及js任務(wù)隊(duì)列與事件循環(huán),將在下方執(zhí)行setSoftFocus之后調(diào)用setSoftBlur()

五、效果如圖

第一個(gè)選擇框沒有

總結(jié)

到此這篇關(guān)于el-select單選時(shí)選擇后輸入框的is-focus狀態(tài)并沒有取消問題解決的文章就介紹到這了,更多相關(guān)el-select單選is-focus狀態(tài)沒有取消內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue+Vant實(shí)現(xiàn)頂部搜索欄

    Vue+Vant實(shí)現(xiàn)頂部搜索欄

    這篇文章主要為大家詳細(xì)介紹了Vue+Vant實(shí)現(xiàn)頂部搜索欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • flask和vue前后端分離項(xiàng)目部署的示例代碼

    flask和vue前后端分離項(xiàng)目部署的示例代碼

    本文主要介紹了flask和vue前后端分離項(xiàng)目部署的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • vue 中swiper的使用教程

    vue 中swiper的使用教程

    本文通過實(shí)例代碼給大家介紹了vue 中swiper的使用,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • 詳解實(shí)現(xiàn)vue的數(shù)據(jù)響應(yīng)式原理

    詳解實(shí)現(xiàn)vue的數(shù)據(jù)響應(yīng)式原理

    這篇文章主要介紹了詳解實(shí)現(xiàn)vue的數(shù)據(jù)響應(yīng)式原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 淺談VUE uni-app 條件編碼和頁面布局

    淺談VUE uni-app 條件編碼和頁面布局

    這篇文章主要介紹了uni-app 的條件編碼和頁面布局,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • Vue中的v-cloak使用解讀

    Vue中的v-cloak使用解讀

    本篇文章主要介紹了Vue中的v-cloak使用解讀,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • vue中的Router基本配置命令實(shí)例詳解

    vue中的Router基本配置命令實(shí)例詳解

    Vue的Router是一個(gè)用于實(shí)現(xiàn)頁面跳轉(zhuǎn)和路由管理的插件,它可以幫助我們根據(jù)不同的URL請求加載不同的組件,以及實(shí)現(xiàn)前端路由功能,本文給大家介紹vue中的Router基本配置命令,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • 使用vue控制元素顯示隱藏方式

    使用vue控制元素顯示隱藏方式

    這篇文章主要介紹了使用vue控制元素顯示隱藏方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue插槽簡介和使用示例詳解

    Vue插槽簡介和使用示例詳解

    插槽就是子組件中的提供給父組件使用的一個(gè)占位符,用<slot></slot>?表示,父組件可以在這個(gè)占位符中填充任何模板代碼,如?HTML、組件等,填充的內(nèi)容會(huì)替換子組件的<slot></slot>標(biāo)簽,這篇文章主要介紹了Vue插槽的理解和使用,需要的朋友可以參考下
    2023-03-03
  • Vue基礎(chǔ)配置講解

    Vue基礎(chǔ)配置講解

    在本篇文章里小編給大家整理的是關(guān)于Vue基礎(chǔ)配置講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2019-11-11

最新評(píng)論

拜泉县| 岚皋县| 萨嘎县| 旺苍县| 揭西县| 烟台市| 北海市| 湖州市| 当阳市| 谢通门县| 弥勒县| 锡林郭勒盟| 尼木县| 武冈市| 扎囊县| 灵台县| 尤溪县| 宁化县| 逊克县| 屏山县| 定南县| 抚远县| 南开区| 玉门市| 永善县| 内黄县| 金阳县| 梅州市| 鱼台县| 徐水县| 呈贡县| 新建县| 灵台县| 上杭县| 阿克陶县| 东阳市| 旬邑县| 平罗县| 平谷区| 黄梅县| 黄大仙区|