1234567891011121314151617181920212223242526272829303132333435363738394041424344//下载PDF文件 function downLoadFile(){ wx.showModal({ title: '温馨提示', content: '确认要打开此PDF文件吗?', showCancel: true, cancelText: '取消', confirmText: '确定', success: (result) => { if (result.confirm) { wx.downloadFile({ url: 'https://XXXX.com/pdf', //实际获取文件的url地址 ...
123456789101112131415161718192021222324252627282930/** 数字金额大写转换(可以处理整数,小数,负数) */ dealBigMoney(n) { var fraction = ['角', '分']; var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']; var unit = [ ['元', '万', '亿'], ['', '拾', '佰', '仟'] ]; var head = n < 0? '欠': &# ...
方法一:普通方法12345678910111213141516171819202122232425<script> function numFormat(num) { var tmp = num.toString().split("."); // 变成字符,然后用“.” 分开小数点前后两个部分为一个数组tmp[0]和tmp[1] // console.log(num); var arr = tmp[0].split("").reverse(); // 变成数组,然后翻转0 // console.log(tmp); var res = []; for (var i = 0; i < arr.length; i++) { if (i % 3 == 0 && i != 0) { // 在3的倍数前先添加“,” ...
123456let endTime = moment();//获取当前时间let startTime = "2000-09-09";//设置之前时间let sum = endTime.diff(startTime, 'months');//获取到相差月份end_date.diff(start_date, 'weeks') // 获取到相差周end_date.diff(start_date, 'days') // 获取到相差月份start_date.diff(end_date, 'days') // 获取到相差天
为什么需要Hook?Hook 是 React 16.8 的新增特性,它可以让我们在不编写class的情况下使用state以及其他的React特性(比如生命周期)。 class组件相对于函数式组件有什么优势? class组件可以定义自己的state,用来保存组件自己内部的状态; 函数式组件不可以,因为函数每次调用都会产生新的临时变量; class组件有自己的生命周期,我们可以在对应的生命周期中完成自己的逻辑; 比如在componentDidMount中发送网络请求,并且该生命周期函数只会执行一次; 函数式组件在学习hooks之前,如果在函数中发送网络请求,意味着每次重新渲染都会重新发送一次网络请求; class组件可以在状态改变时只会重新执行render函数以及我们希望重新调用的生命周期函数componentDidUpdate等; 函数式组件在重新渲染时,整个函数都会被执行,似乎没有什么地方可以只让它们调用一次; 所以,在Hook出现之前,对于上面这些情况我们通常都会编写class组件 Class组件存在的问题 复杂组件变得难以理解: 我们在最初编写一个class组件 ...
React核心成员(Redux的作者)Dan Abramov也有对应的回复 https://github.com/facebook/react/issues/11527#issuecomment-360199710 总结: 1、setState设计为异步,可以显著的提升性能; 如果每次调用 setState都进行一次更新,那么意味着render函数会被频繁调用,界面重新渲染,这样效率是很低的; 最好的办法应该是获取到多个更新,之后进行批量更新; 2、如果同步更新了state,但是还没有执行render函数,那么state和props不能保持同步; state和props不能保持一致性,会在开发中产生很多的问题
1.什么是tag1.1 tag的简单理解1234tag 中文我们可以称它为 标签。简单的理解,tag 就是 对某次 commit 的一个标识,相当于起了一个别名。例如,在项目发布某个版本的时候,针对最后一次commit 起一个 v1.0.100 这样的标签来标识里程碑的意义。 1.2 tag的类型123456有两种类型的标签 : 轻量标签(lightweight)、附注标签(annotated)【轻量标签 】: 只是某个commit 的引用,可以理解为是一个commit的别名;【附注标签】 :是存储在git仓库中的一个完整对象,包含打标签者的名字、电子邮件地址、日期时间 以及其他的标签信息。 它是可以被校验的,可以使用 GNU Privacy Guard (GPG) 签名并验证。 2.1 查看标签2.1.1 查看标签列表123$ git tagor $ git tag -l [标签名称筛选字符串*] 或者 git tag --list [标签名称筛选字符串*] 说明 :git tag : 直接列出所有的标签git tag -l xxxx : 可以根据 xxxx ...
1234567891011121314151617181920212223242526272829303132333435363738394041// 思路:获取时间戳的差// 时间差除以时间格式需要的倍数 如果超过1 则表示时间差在这个等级中function getDateDiff(dateTimeStamp) { const now = Date.now() const diffValue = now - dateTimeStamp if (diffValue < 0) { console.error('结束日期不能小于开始日期!') return } // 时间格式转换需要的数字倍数 const minute = 1000 * 60 // const hour = minute * 60// const day = hour * 24 // 几天前 const month = day * 30 // 月 // 时间差 除以时间格式需要的倍数 const monthC = diffValue ...
1、在vue项目中的index.html引入1<meta name="format-detection" content="telephone=yes" /> 2、在vue页面使用1234567 // 拨打电话methods:{ callPhone(phoneNumber) { console.log(phoneNumber); window.location.href = "tel://" + phoneNumber; },} 3、调用方法1234<div @click="callPhone(item.phone)"> 手机号</div>
123456789101112131415161718<div class="text">加载中,请稍后<span class="dot">...</span></div><style>.dot { font-family: simsun; /*固定字体避免设置的宽度无效*/ animation: dot 3s infinite step-start; display: inline-block; width: 1.5em; vertical-align: bottom; /*始终让省略号在文字的下面*/ overflow: hidden;}@keyframes dot { /*动态改变显示宽度, 但始终让总占据空间不变, 避免抖动*/ 0% { width: 0; margin-right: 1.5em; } 33% { width: .5em; margin-right: 1e ...
公告
博客微信小程序版已上线,同步更新,请扫码浏览。🎉
最新文章
最新评论
正在加载中...
网站资讯
文章数目 :
272
已运行时间 :
本站总字数 :
288.8k
本站访客数 :
本站总访问量 :
最后更新时间 :