huangtaoya
侠客
侠客
  • 最后登录2020-03-26
  • 发帖数10
阅读:3801回复:0

[其它]知识技术点[不定时更新]

楼主#
更多 发布于:2019-11-14 11:20
JS:
1. JS:遍历对象,删除空对象
 for (const key in this.obj) {
    if (this.obj[key] === "") {
      delete this.obj[key];
    }
  }

2. JS:获取指定日期的前一天
原生JS:
方法①
date 代表指定的日期,格式:2018-09-27
d 传-1表始前一天,传1表始后一天
getNextDate(date,day);
function getNextDate(date,day) {  
  var dd = new Date(date);
  dd.setDate(dd.getDate() + day);
  var y = dd.getFullYear();
  var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
  var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
  return y + "-" + m + "-" + d;
};
方法 ②
getLastDayFun(date) {
  date = new Date(date);
  date = +d - 1000 * 60 * 60 * 24;
  date = new Date(date);// 格式化
  let m = date.getMonth() + 1;
  m = m < 10 ? ("0" + m) : m;
  let day = date.getDate();
  day = day < 10 ? ("0" + day) : day;
}
方法③
简化版:new Date(new Date().getTime() - 86400000)

3. JS:将多条数据,根据同类型进行分组
data:
    oldArr: [],
    newArr: []
JS:
   this.newArr= [];
   const rotationObj = this.oldArr.item.reduce((prev, current) => {
      if (typeof prev[current.rotation] === "undefined") {
         prev[current.rotation] = [current];
      } else {
         prev[current.rotation].push(current);
      }
      return prev;
      }, {});
   Object.keys(rotationObj).forEach((k) => {
      this.newArr.push(rotationObj[k]);
   });

4. JS:new Set()方法去重
arr = [ ...new Set(arr) ];

5. JS:格式化时间格式
 // 对小于 10 的数字,前面补 0
    pad(str) {
      return str < 10 ? `0${str}` : str;
    },
// 传入年、月、日
    stringify(year, month, date) {
      let str = [year, this.pad(month + 1), this.pad(date)].join("-");
      return str;
    }

6. JS:算法简写
    所有算法都可以简写,如  (x = x / y  =>  x /= y),(x = x % y  =>  x % = y)。
注意:**= 运算符属于 ECMAScript 2016 proposal (ES7) 的实验部分。它的跨浏览器表现并不稳定。请勿使用。

7.JS:用代码模拟手动操作
this.$nextTick(() => {
// 要模拟的操作
});

8.JS:遍历键名为id、name值之类的对象 取值的方法
(1)先获取对象里的所有key
let objArr = Object.keys(res.data);
(2)然后循环objArr,进行赋值
let newArr = [];
objArr.forEach(item => {
newArr.push(res.data[item]);
})



9.JS:数组排序
   function sortnumber(a,b){
        // return a-b;     //默认升序
        return b-a;     //默认降序
    }
    var arr = [12,345,45,23,11,445];
    var arrnew = arr.sort(sortnumber);


10.H5同一窗口打开网址
window.location.href = url;

VUE:
1. VUE:给对象添加或者修改字段的值,并让页面也跟着局部变化
  this.$set(item, "active", true);

2. VUE:v-model的几种修饰符.lazy,.number和.trim的介绍
  (1).lazy并不是实时改变,而是在失去焦点或者按回车时才会更新
  (2).number将输入转换成Number类型
  (3).trim可以自动过滤输入首尾的空格

3. VUE:v-if 多个值满足一个即成立
  <div v-if="[10,11,20].includes(row.id)"></div>

4. VUE:动态绑定class
  <div :class="[isActive ? 'mySelected' : '']"></div>

5.VUE:”设置滚动到盒子底部
  <el-main id="main" ref="mainRef"></el-main>
  this.$refs.mainRef.$el.scrollTop = this.$refs.mainRef.$el.scrollHeight;



6.父子组件双向绑定传值
子组件:
 props: {
 isShow: { type: Boolean, default: false }
 }
 this.$emit("update:isShow", false);


父组件:
 <div :isShow.sync="explain"></div>

CSS:
1. CSS计算属性
  calc(50% - 154px);

2.文本(包括单词)强制换行
  word-break: break-all;
  word-wrap: break-word;
[huangtaoya于2020-03-26 16:43编辑了帖子]

最新喜欢:

doubleyongdouble...
游客


返回顶部

公众号

公众号