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

關(guān)于vue中輸入框的使用場(chǎng)景總結(jié)

 更新時(shí)間:2022年05月31日 14:30:33   作者:huangpb0624  
這篇文章主要介紹了關(guān)于vue中輸入框的使用場(chǎng)景總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

輸入框的使用場(chǎng)景總結(jié)

1. 自動(dòng)聚焦

第1種方法:使用 $nextTick

<input ref="myInput" v-model="text"/>
mounted() {
  this.$nextTick(function () {
    this.$refs.myInput.focus();
  });
},

第2種方法:自定義 v-focus 指令

為了方便,這里用到了 jquery

Vue.directive('focus', {
  inserted(el) {
    // 兼容 Element 基于原生 input 封裝的輸入框組件
    let innerInput = el.querySelector('input');
    if (innerInput) {
      innerInput.focus();
    // 兼容原生 input
    } else {
      el.focus();
    }
  },
});

如果你有一個(gè)按鈕可以控制輸入框的顯示和隱藏,需要每次顯示的時(shí)候都自動(dòng)聚焦,那要 v-if 而不能使用 v-show,因?yàn)橹挥?v-if 才能觸發(fā)自定義指令的 inserted 生命周期函數(shù)。

<input v-if="visible" v-focus v-model="text"/>

2. 如何優(yōu)雅的實(shí)現(xiàn)下面效果

效果描述:我們?cè)陂_發(fā)表格的時(shí)候經(jīng)常會(huì)遇到一個(gè)輸入框,輸入框聚焦的時(shí)候會(huì)顯示輸入框后面的“保存”按鈕,失焦的時(shí)候后面的“保存”按鈕隱藏。點(diǎn)擊保存,保存輸入框里面的內(nèi)容。輸入框失焦的時(shí)候(點(diǎn)擊保存按鈕保存成功除外),輸入框里面的內(nèi)容要顯示原先的內(nèi)容。  

這里實(shí)現(xiàn)的時(shí)候會(huì)遇到一些比較惡心的地方,比如說,點(diǎn)擊保存按鈕,輸入框失焦了,保存按鈕先隱藏了,就不會(huì)觸發(fā)按鈕上綁定的點(diǎn)擊事件,等等。話不多說,直接上代碼,看怎么優(yōu)雅的去實(shí)現(xiàn)它。

代碼實(shí)現(xiàn): 

<template>
  <div>
    <el-table
      :data="tableData"
      border
    >
      <el-table-column
        label="商家編碼"
        width="200"
      >
        <template slot-scope="{row, $index}">
          <input
            style="width: 100px;"
            v-model="row.skuOuterId"
            @focus="toggleFocus($event, $index, row, true)"
            @blur="toggleFocus($event, $index, row, false)"
          />
          <el-button
            :class="`J_saveBtn_${$index}`"
            :ref="'saveBtn_' + $index"
            v-show="row.showSaveBtn"
            type="primary"
          >保存
          </el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>
<script>
export default {
  data() {
    return {
      tableData: [
        {
          skuOuterId: '123',
          oldSkuOuterId: '123',
          showSaveBtn: false,
        }
      ]
    };
  },
  methods: {
    toggleFocus(e, $index, data = {}, isFocus = false) {
      // 聚焦
      if (isFocus) { 
        data.showSaveBtn = true;
      // 失焦
      } else { 
        // 點(diǎn)擊“保存”失焦(判斷失焦時(shí)關(guān)聯(lián)的目標(biāo)元素是不是輸入框后面的保存按鈕)
        if (e.relatedTarget === this.$refs[`saveBtn_${$index}`].$el) {
          axios.post('/updateSkuOuterId', {skuOuterId: data.skuOuterId}).then(res => {
            // 保存成功
            data.oldSkuOuterId = data.skuOuterId;
          }).catch(() => {
            data.skuOuterId = data.oldSkuOuterId;
          });
        // 點(diǎn)擊其他地址失焦
        } else {
          data.skuOuterId = data.oldSkuOuterId;
        }
        data.showSaveBtn = false;
      }
    },
  },
};
</script>

上面的代碼在有橫向滾動(dòng)條的時(shí)候,如果出現(xiàn)了 e.relatedTarget === this.$refs[`saveBtn_${$index}`].$el 為 false,但我們感覺失焦的目標(biāo)元素就是保存按鈕的情況,我們可以把判斷條件這么改一下:

e.relatedTarget === this.$refs[`saveBtn_${$index}`].$el
// 改成(下面使用了jQuery) 
$(e.relatedTarget).hasClass(`J_saveBtn_${$index}`)

這樣就 OK 了!

關(guān)于輸入框的一些操作

關(guān)于輸入框

監(jiān)聽輸入

失去焦點(diǎn)的事件

<template>
  <div class="orderinfo">
  <input type="text" v-model="text" @blur="blur()">
  </div>
</template>
<script>
export default {
  name: "Orderinfo",
  data() {
    return {
      text:''
    };
  },
 
  mounted() {},
  watch: {
    // 監(jiān)聽輸入框輸入
    text: function(val) {
      if (val.length > 0) {
        console.log('顯示刪除')
      } else {
         console.log('不顯示刪除')
      }
    }
  },
 
  methods: {
    //失去焦點(diǎn)
    blur(){
      console.log(this.text)
    }
  }
};
</script>
 
<style scoped lang="scss">
</style>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • el-table嵌套el-popover處理卡頓的解決

    el-table嵌套el-popover處理卡頓的解決

    本文主要介紹了el-table嵌套el-popover處理卡頓的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Vue下載不同文件的幾種方式總結(jié)

    Vue下載不同文件的幾種方式總結(jié)

    在Vue項(xiàng)目中實(shí)現(xiàn)文件下載有多種方式,包括使用window.open、<a>標(biāo)簽、axios、FetchAPI、自定義$download方法以及創(chuàng)建a標(biāo)簽等,每種方法都有其適用場(chǎng)景,開發(fā)者可以根據(jù)項(xiàng)目需求選擇最合適的方式
    2025-01-01
  • vue項(xiàng)目純前端實(shí)現(xiàn)的模板打印功能示例代碼

    vue項(xiàng)目純前端實(shí)現(xiàn)的模板打印功能示例代碼

    在Vue項(xiàng)目中,通過使用vue-print-nb插件,可以實(shí)現(xiàn)頁(yè)面的打印功能,這篇文章主要介紹了vue項(xiàng)目純前端實(shí)現(xiàn)的模板打印功能的相關(guān)資料,需要的朋友可以參考下
    2024-10-10
  • Element-ui tree組件自定義節(jié)點(diǎn)使用方法代碼詳解

    Element-ui tree組件自定義節(jié)點(diǎn)使用方法代碼詳解

    本文通過實(shí)例代碼給大家介紹了Element-ui tree組件自定義節(jié)點(diǎn)使用方法 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • Vue如何實(shí)現(xiàn)pptx在線預(yù)覽

    Vue如何實(shí)現(xiàn)pptx在線預(yù)覽

    通過PPTXjs插件,實(shí)現(xiàn)PPTX文件在線預(yù)覽,需下載PPTXjs,將其引入HTML頁(yè)面,并編寫相應(yīng)的HTML和JS代碼,如果是移動(dòng)端還需調(diào)整div大小,這是一種便捷的前端PPTX轉(zhuǎn)HTML技術(shù),適合網(wǎng)頁(yè)展示使用
    2024-09-09
  • Vue實(shí)現(xiàn)手機(jī)計(jì)算器

    Vue實(shí)現(xiàn)手機(jī)計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)手機(jī)計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • vue項(xiàng)目頁(yè)面的打印和下載PDF加loading效果的實(shí)現(xiàn)(加水印)

    vue項(xiàng)目頁(yè)面的打印和下載PDF加loading效果的實(shí)現(xiàn)(加水印)

    這篇文章主要介紹了vue項(xiàng)目頁(yè)面的打印和下載PDF加loading效果的實(shí)現(xiàn)(加水印),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • LRU算法在Vue內(nèi)置組件keep-alive中的使用

    LRU算法在Vue內(nèi)置組件keep-alive中的使用

    LRU算法全稱為least recently use 最近最少使用,核心思路是最近被訪問的以后被訪問的概率會(huì)變高,那么可以把之前沒被訪問的進(jìn)行刪除,維持一個(gè)穩(wěn)定的最大容量值,從而不會(huì)導(dǎo)致內(nèi)存溢出。
    2021-05-05
  • vue3 elementplus table合并寫法

    vue3 elementplus table合并寫法

    這篇文章主要介紹了vue3 elementplus table合并寫法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Vue 監(jiān)聽元素前后變化值實(shí)例

    Vue 監(jiān)聽元素前后變化值實(shí)例

    這篇文章主要介紹了Vue 監(jiān)聽元素前后變化值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07

最新評(píng)論

龙胜| 久治县| 新沂市| 松滋市| 神农架林区| 罗江县| 界首市| 达日县| 含山县| 广平县| 大田县| 德惠市| 濮阳市| 独山县| 柳林县| 衡阳市| 渝中区| 晋城| 吉木萨尔县| 普洱| 谷城县| 淳化县| 池州市| 肇东市| 曲沃县| 东台市| 嘉兴市| 绥芬河市| 韶山市| 余姚市| 休宁县| 岳普湖县| 逊克县| 客服| 东乡县| 辽源市| 黑水县| 铁岭市| 西畴县| 郴州市| 靖远县|