5月前端开发日记整理

简介: 5月前端开发日记整理

前言:


由于最近开发的项目基于vue,所以本文是基于vue的

1.阻止鼠标右键事件


mounted () {
    let that = this
    // 注意 取消默认行为 我们鼠标右键的时候 一般是弹出 浏览器的 属性 刷新等等的那个菜单
    // 阻止默认行为 就没有那个菜单出来了
    document.addEventListener('contextmenu', function (e) {
      e.preventDefault()
      that.anQuanSeach()
      console.log("^^^…………………………大大大")
    })
  },

2.bug: 表单编辑时输入无效


做表单时点击编辑页,发现无法对input框内的数据修改(有时也会很正常,但后患无穷),控制台警告如下

关键词:violation

image.png

使用解决办法:

1. (1)npm i default-passive-events -S 
2. (2)main.js中加入:import ‘default-passive-events’

成功解决后

然而,我项目中有使用拖拽连线组件jsplumb,发现连线报错。

image.png

最终解决方法为:将default-passive-events放到表

单组件中引入而不是全局引入  

import './default-passive-events/dist/index'//解决控制台警告……

image.png

3.显示/隐藏密码功能+小眼睛效果


  //模板                  <el-input
                      :type="passwordType"
                      v-model="dialogEdieot.password"
                      autocomplete="off"
                    ></el-input>
                    <span class="show-pwd" @click="showPwd">
                      <svg-icon
                        :icon-class="
                          passwordType === 'password' ? 'eye' : 'eye-open'
                        "
                      />
                    </span>
data:
passwordType: 'password',
method:
   showPwd () {
      if (this.passwordType === 'password') {
        this.passwordType = ''
      } else {
        this.passwordType = 'password'
      }
    },
css:
   .show-pwd {
  position: absolute;
  right: 0.2084rem;
  top: -0.0052rem;
  font-size: 0.0833rem;
  color: #7c7c7e;
  opacity: 0.5;
  cursor: pointer;
  user-select: none;
}

4.当表单必填项没填时提交按钮不可点击且置灰


思路是:

使用watch监听表单数据(v-model绑定的)来动态控制按钮的disabled属性

注意:下面watch是监听的对象,使用的深度监听

 watch: {
    dialogEdieot: {
      handler (newValue, oldValue) {
        // 如果点击提交按钮必填项为空按钮不可点击且灰色
        if (newValue.ip && newValue.name ) {
          this.isTiJiao = false //当IP和name无变化时按钮为可点击
        } else {
          this.isTiJiao = true//当IP和name无变化时按钮为不可点击
        }
      },
      deep: true,
    }
  },

5.屡试不爽的神技-刷新页面


工作中使用比较多,简单暴力可以避免很多很多坑点,还有一个有点,用户体验度比较好

在你的app.vue页面内(如果你的根组件不叫这个,那就找你的路由出口)

按照以下方式设置:

<template>
  <div id="app">
    <router-view v-if="isRouterAlive" />
  </div>
</template>
<script>
export default {
  name: 'App',
  provide () {
    return {
      reload: this.reload
    }
  },
  data () {
    return {
      isRouterAlive: true
    }
  },
  methods: {
    reload () {
      this.isRouterAlive = false
      this.$nextTick(function () {
        this.isRouterAlive = true
      })
    }
  }
}
</script>

然后就可以在任意一个组件内这样使用:

1. inject: ['reload'],
2.   data () {
3. return {}
4.   },

6.ElementUI表单验证注意事项


其实就三步,这个不多说。

问题:表单验证只有在错误的时候才会提示,且一直卡在错误提示处,这是因为定义的规则那里没有对正确的情况下写callback()

 data () {
    var checkIp = (rule, value, callback) => {
      if (!value) {
        return callback(new Error('ip不能为空'))
      }
      let vulue2 = "" + value
      let values = vulue2.replace(/\s+/g, "")
      var pattern = /^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/
      if (pattern.test(values)) {
        callback()
      } else {
        callback(new Error('非法ip地址!')) //ip地址输入有误
      }
    }
    return {}

7.ElementUI最大输入和最小输入及清空图标


maxlength="30" //最多输入30个字符

minlength="30" //最小输入30个字符
clearable //显示清空按钮

                    <el-input
                    maxlength="30" //最多输入30个字符
                    clearable //显示清空按钮
                    placeholder="请输入1-30个字符"
                    v-model="dialogEdieot.ip"
                    autocomplete="off"
                  />

8.数组累计问题


场景:

比如点击详情页本来数据是三条,再点其他数据累加了,大概率是数组push()的原因,先清空数组再装数据就好了。

image.png


相关文章
|
7月前
|
设计模式 缓存 移动开发
前端工程师300道面试题整理
前端工程师300道面试题整理
113 0
|
7月前
|
Web App开发 缓存 前端开发
前端性能优化的整理笔记(一)
前端性能优化的整理笔记(一)
166 0
|
7月前
|
移动开发 前端开发 JavaScript
【前端面试】前端面试题300道~~熬夜吐血整理,2024年最新大厂面试经验分享稿
【前端面试】前端面试题300道~~熬夜吐血整理,2024年最新大厂面试经验分享稿
|
7月前
|
缓存 前端开发 JavaScript
前端性能优化的整理笔记(二)
前端性能优化的整理笔记(二)
112 0
|
7月前
|
搜索推荐 关系型数据库 程序员
嗨,程序员,你知道高级工程师用的搜索引擎吗?
嗨,程序员,你知道高级工程师用的搜索引擎吗?
|
前端开发 JavaScript 容器
2023年前端面试整理(持续更新中)
2023年前端面试整理(持续更新中)
|
移动开发 前端开发 JavaScript
2023最新H5前端阅读书单推荐
《HTML5权威指南》(电子版下载)是一本关于HTML5的详细指南。它详细介绍了HTML5的新特性,包括语法、API、图形和多媒体,以及与旧版HTML的区别。这本书非常适合那些希望快速了解HTML5的开发人员,并帮助他们创建高质量的网页和Web应用程序。
195 0
|
Web App开发 移动开发 前端开发
前端工程师学习路线分析
首先学习的时候,不要想着大而全; 很多知乎上包括网上列举的学习路线都是想着大而全,什么都去搞,恨不得把前面5年的学习路线都安排好的; 我觉得新手不应该这么做,新手学习的时候应该有自己的主要方向; 不要贪心,不要想着大而全,前端是很繁荣,是新技术层出不穷,但是新手的大部分时间应该死磕核心部分;
403 0
100个⼩时整理的OKR实战笔记,拿⾛不谢!
PDF文件下载链接: https://pan.baidu.com/s/1wZpNMANjZyQYzB4CfUEr6w 提取码: krjv
100个⼩时整理的OKR实战笔记,拿⾛不谢!
|
移动开发 前端开发 搜索推荐
H5十大新特性(前端面试新手必背)(2)
H5十大新特性(前端面试新手必背)(2)
112 0
H5十大新特性(前端面试新手必背)(2)

相关实验场景

更多