前端-js和vue

1,定时器,setInterval(一直执行) setTimeout(只执行一次)

//只执行一次
setTimeout(function,5000);

//循环执行
setTimeout(function,5000);

// 动态修改定时器时间
let index = 1
let set1 = setInterval(fn, timeDatas[0] * 1000)
function fn() {
  if (index < cameras.length) {
    routeWay.setCameraOptions({
        type: "gs",
        pitch: cameras[index].pitch,
        heading: cameras[index].heading,
        radius: cameras[index].alt
      }
    )
    index = index + 1
    clearInterval(set1)

    set1 = setInterval(fn, timeDatas[index - 1] * 1000)
  } else {
    clearInterval(set1)
  }
}

2,//加载loading动画

import { Loading } from 'element-ui';
var loadAn = Loading.service({
        // 动画中的文字
        text:'即将向维修人员发送邮件,请稍等',
        // 要加载动画的容器
        target:'.app-container'
      });

//关闭动画
loadAn.close();

3,Json转换

//后台传过来的Json字符必须转换才能识别为json对象
var a = '{"a":2}';
JSON.parse(a);  //{a:2},字符转json
var s = {'a':2};
JSON.stringify(s);  //"{"a":2}",json转字符

var track = JSON.parse(tracks);//String转Json,数据库到前端
var trackTest = JSON.stringify(track);//Json转string,前端到数据库

4,异步
打印内容为response.rows

  async test(){
    var test = []
    await listDevelopmentalNoPage().then(response => {
      test = response.rows
      // console.log(response)
    });
    console.log(test)
  },

打印内容为[]

  test(){
    var test = []
    listDevelopmentalNoPage().then(response => {
      test = response.rows
      // console.log(response)
    });
    console.log(test)
  },

即在方法前加上async前缀,在需要异步的方法前加上await即可

//await 必须是单独的句子,而不能在方法块里
async calZyl(){
  var drill2Data = [];
  var drillPoints = await this.getDrillPoint(drill2Data);
}

5,vue报is not defined on the instance but referenced during render
翻译:不是在实例上定义的,而是在渲染过程中引用的。
第一检查是否methods写成method,即检查方法位置,必须放在methods{}块中
第二检查报错得方法有没有定义,即检查有没有这个方法,是不是拼写错了
第三是否只有一个script标签,多个script就会报错

6,时间操作

var now = new Date();//得到当前时间
console.log(now.getTime())//当前时间时间戳
var t2 = "2017-5-8 12:50:30";
console.log(new Date(t2)) // 将日期转换为时间,Mon May 08 2017 12:50:30 GMT+0800 (中国标准时间)
var date = new Date();
var date1 = new Date().getTime();	// 获取当前时间戳
date.setTime(date1 + 60 * 60 *1000);// 当前时间戳+3600s(一小时,其他时间通过计算时间戳进行相应加减),重新设置 Date 对象,得到一小时后的时间

// 格式化日期,如月、日、时、分、秒保证为2位数
function formatNumber (n) {
    n = n.toString()
    return n[1] ? n : '0' + n;
}

// 参数number为毫秒时间戳,format为需要转换成的日期格式
function formatTime (number, format) {
    let time = new Date(number)
    let newArr = []
    let formatArr = ['Y', 'M', 'D', 'h', 'm', 's']
    newArr.push(time.getFullYear())
    newArr.push(formatNumber(time.getMonth() + 1))
    newArr.push(formatNumber(time.getDate()))

    newArr.push(formatNumber(time.getHours()))
    newArr.push(formatNumber(time.getMinutes()))
    newArr.push(formatNumber(time.getSeconds()))

    for (let i in newArr) {
        format = format.replace(formatArr[i], newArr[i])
    }
    return format;
}
//使用formatTime(1545903266795, 'Y年M月D日 h:m:s')或者formatTime(1545903266795, 'Y-M-D h:m:s')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值