vue computed使用场景,vue的使用方式和场景

  vue computed使用场景,vue的使用方式和场景

  本文主要介绍了vue中输入框的使用场景总结,具有很好的参考价值。希望对大家有帮助。如有错误或不足之处,请不吝赐教。

  

目录

  输入框1的使用场景总结。自动对焦2。如何优雅地实现以下效果?关于输入框的一些操作

  

输入框的使用场景总结

  

1. 自动聚焦

  第1种方法:使用 $nextTick

  input ref= my input v-model= text /

  已安装(){

  这个。$nextTick(function () {

  这个。$ refs . my input . focus();

  });

  },

  第2种方法:自定义 v-focus 指令

  为了方便起见,这里使用jquery

  Vue.directive(focus ,{

  已插入(el) {

  //基于本机输入包的兼容元素输入框组件

  let inner input=El . query selector( input );

  if (innerInput) {

  inner input . focus();

  //与本机输入兼容

  }否则{

  El . focus();

  }

  },

  });

  如果你有一个可以控制输入框显示和隐藏的按钮,并且每次显示都需要自动聚焦,那么你应该使用v-if而不是v-show,因为只有v-if才能触发自定义指令的插入生命周期功能。

  输入v-if= visible v-focus v-model= text /

  

2. 如何优雅的实现下面效果

  效果描述:我们在开发表格的时候,经常会遇到一个输入框。当输入框被聚焦时,输入框后面的“保存”按钮将被显示。当它不在焦点上时,后面的“保存”按钮将被隐藏。单击保存保存输入框的内容。当输入框失焦时(点击保存按钮保存成功除外),输入框中的内容应该显示原来的内容。

  这里的实现会有一些恶心的东西,比如当你点击保存按钮时,输入框失焦,保存按钮先被隐藏,所以不会触发按钮上绑定的click事件,等等。话不多说,直接上代码,看看怎么优雅的实现。

  代码实现:

  模板

  差异

  el表

  :data=tableData

  边界

  El-表格-列

  Label=商家代码

  宽度=200

  模板slot-scope={row,$index}

  投入

  style= width:100px;

  v-model= row . skuuterid

  @focus=toggleFocus($event,$index,row,true)

  @blur=toggleFocus($event,$index,row,false)

  /

  el按钮

  :class=`J_saveBtn_${$index} `

  :ref=saveBtn_ $index

  v-show=row.showSaveBtn

  type=primary

  保护

  /el-button

  /模板

  /El-表格-列

  /el-table

  /div

  /模板

  脚本

  导出默认值{

  data() {

  返回{

  表格数据:[

  {

  skouterid: 123 ,

  oldskouterid: 123 ,

  showSaveBtn: false,

  }

  ]

  };

  },

  方法:{

  toggleFocus(e,$index,data={},isFocus=false) {

  //焦点

  if (isFocus) {

  data.showSaveBtn=true

  //焦点不在

  }否则{

  //点击“保存”退出焦点(判断关联的目标元素是否为焦点退出时输入框后面的保存按钮)

  if (e.relatedTarget===this。$refs[`saveBtn_${$index}`]。$el) {

  axios . post(/updateskuuterid ,{ skuuterid:data . skuuterid })。然后(res={

  //保存成功

  data . oldskuuterid=data . skuuterid;

  }).catch(()={

  data . skuuterid=data . oldskuuterid;

  });

  //单击其他地址以脱离焦点

  }否则{

  data . skuuterid=data . oldskuuterid;

  }

  data.showSaveBtn=false

  }

  },

  },

  };

  /脚本

  当上述代码中有水平滚动条时,如果e.related target===this。$ refs [` savebtn _ $ {$ index }`]。$ el是假的,但是我们觉得失焦的目标元素是保存按钮。我们可以这样改变判断条件:

  e.relatedTarget===this。$refs[`saveBtn_${$index}`]。$el

  //更改为(下面使用jQuery)

  $(e.relatedTarget)。hasClass(`J_saveBtn_${$index} `)

  没关系!

  

关于输入框的一些操作

  关于输入框

  监听输入

  失去焦点的事件

  模板

  div class=orderinfo

  input type= text v-model= text @ blur= blur()

  /div

  /模板

  脚本

  导出默认值{

  名称:订单信息,

  data() {

  返回{

  文本:""

  };

  },

  已安装(){},

  观察:{

  //监听输入框输入

  文本:函数(瓦尔){

  如果(值长度0) {

  console.log(显示删除)

  }否则{

  console.log(不显示删除)

  }

  }

  },

  方法:{

  //失去焦点

  模糊(){

  console.log(this.text)

  }

  }

  };

  /脚本

  样式范围的语言=scss

  /风格

  以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: