- 博客(138)
- 收藏
- 关注
原创 React中的Hooks钩子
用于在函数组件中处理复杂的状态逻辑。它通常用于管理具有复杂状态和行为的组件,尤其是涉及到多个状态转换的情况。useReducer 接受两个参数:一个是包含状态转换逻辑的函数(reducer),另一个是初始状态。它返回一个包含当前状态和 dispatch 函数的数组。副作用是指一段和当前执行结果无关的代码,比如说要修改函数外部的某个变量,要发起一个请求有两个参数。useEffect 有两个参数第一个参数是 callback,第二个是个依赖数组,这个数组可以为空。访问 Dom 元素,
2024-10-14 15:51:02
488
原创 react生命周期函数渲染循序
挂载,当组件实例被创建并插入 DOM 中时,其生命周期调用顺序如下constructor(),static getDerivedStateFromProps(不常用),render(),componentDidMount()getDerivedStateFromProps 会在调用 render 方法之前调用,并且在初始挂载及后续更新时都会被调用。它应返回一个对象来更新 state,如果返回 null 则不更新任何内容。更新,当组件的 props 或 state 发生变化时会触发更新。组件更新的生命周
2021-12-30 16:25:20
611
原创 css实现正片叠底
mix-blend-mode: normal; //正常mix-blend-mode: multiply; //正片叠底mix-blend-mode: screen; //滤色mix-blend-mode: overlay; //叠加mix-blend-mode: darken; //变暗mix-blend-mode: lighten; //变亮mix-blend-mode: color-dodg
2021-12-28 10:46:01
4517
1
原创 js获取页面url地址
function getQueryString(key) { var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)"); var result = window.location.search.substr(1).match(reg); return result ? decodeURIComponent(result[2]) : null;}
2021-09-10 18:30:01
929
原创 vue中request和response请求拦截器
request 请求拦截器,有token值则配置上token值axios.interceptors.request.use(config=>{ if(token && config.url != "/login"){ config.headers['Authentication'] = token } return config;},error=>{ console.log(error); Promise.reject(error
2021-08-25 10:35:41
3138
原创 小程序获取顶部高度,设备信息和时间胶囊位置信息
wx.getSystemInfoSync(),//获取设备信息 try { const res = wx.getSystemInfoSync() console.log(res.model) console.log(res.pixelRatio) console.log(res.windowWidth) console.log(res.windowHeight) console.log(res.language) console.log(res.version) cons.
2021-07-14 16:20:29
754
原创 js数组分割成多个数组
function group(data,index) { if(data && index == 0){ var data = data.splice(0,Math.floor(data.length/2)) }else { var data = data.splice(Math.floor(data.length/2)) } return data;}
2021-07-02 18:08:04
1689
原创 js对象转换字符串
var skuDetailMap = {0100000896: {createTime: "2020-02-17T03:26:23.000+0000"skuCode: "0100000896"skuParams: "{"长度":"短","面积":"小"}"updateTime: "2021-06-15T06:37:18.000+0000"}}let spu = skuDetailMap for (let key in spu){ if(s
2021-06-15 17:48:34
498
原创 js时间转换,年月日时分秒转换,时间戳转换
var newTime = new Date().getDate()//本地时间--日期var newTime = new Date().getTime()//本地时间--日期--时间戳var endTime="2021-03-03T16:00:00.000+0000"endTime=endTime.replace(/-/g,"/").replace("T"," ").substring(0,19)console.log(newTime,'当地时间') //8 "结束时间"var DateIn=n
2021-06-08 16:07:37
5347
原创 js中的forEach和map循环的区别
foreach又叫做增强for循环,相当于for循环的简化版,foreach(元素类型 元素名称:循环对象(数组、集合)){循环语句}forEach能不能跳出循环呢?可以,不过不是使用break,而是结合try catch操作,forEach中使用return无效map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。map() 方法按照原始数组元素顺序依次处理元素。 var couponInfo=["24389","24389","24388","24120","2439
2021-06-04 18:49:54
729
原创 js数组过滤器filter
var arr0 = [ {name:'会员卡',description:"会员卡8折"}, {name:'优享卡',description:"优享卡8折"}, {name:'秒杀',description:""},]var couponInfoObject = {}couponInfo.map(name=>{ let youxiangka = arr0.filter(item=>item.name==="会员卡") if(youxiangka){ couponInf
2021-06-04 18:30:48
1188
原创 javascript中可用的编码解码函数
escape(string); unescape(string);encodeURI(string); decodeURI(string);encodeURIComponent(string); decodeURIComponent(string);
2021-06-03 17:14:05
211
1
原创 js时间转换的一些方法,时间转换天数,获取商品活动时间
// 获取两个时间相差多少天 function getTimeDaysNum(time1,time2){ if(!time1 && !time2) return ''; // 转为时间戳计算 time1 = time1?getDate(time1.replace(getRegExp('\-','g'),'/').substring(0,10)) : getDate() time2 = time2?getDate(time2.replace
2021-05-13 15:46:40
581
原创 小程序返回上一个页面刷新
A页面自定义一个函数方法 reloadOrder // 刷新页面订单列表信息 reloadOrder() { //门店订单 this.setData({ pageNum:1, list:[], //切换 isWhole:false, }); this.getList(); },B页面接受这个方法,并返回上一个页面,刷新页面 let pages = getCurrentPages(); //获取当前页面
2021-04-13 10:55:23
205
原创 vuex的使用方法
npm install vuex -s在src下创建store,文件夹下创建index.jsimport Vue from 'vue';import Vuex from 'vuex';Vue.use(Vuex);const store = new Vuex.Store({ state:{ count: 0 }, getters:{ }, mutations:{ increment (state) {
2021-03-04 17:10:46
130
1
原创 vue跳转页面传递参数的三种方法
vue中this.$router.push()路由传值和获取的两种常见方法path不能和params一起使用,否则params将无效。需要用name来指定页面。使用params传参要用name不能使用path只是大概的介绍一下,如果想看详细的参数用法可以查看我下面的文章https://blog.youkuaiyun.com/style201904/article/details/102605338第一种方法query传参this.$router.push({path:'/business',query:{w
2020-12-09 15:00:50
2981
原创 js使用mescroll下拉刷新和页面传参
引入mescroll.js <script type="text/javascript" src="./js/mescroll.m.js"></script>//插件有详细的配置参数这里我就不多介绍了//这里结构父盒子的id="mescroll"所以下面设置使用mescroll,可以随便设置var mescroll = new MeScroll("mescroll",{ up:{ callback: upCallback, //
2020-12-09 14:25:04
270
原创 vue中父子组件之间通信的方法
<!-- 父传子(props) 父组件father.vue --><template> <div> <div>father组件</div> <div>父组件要传给子组件的参数:{{msg}}</div> <!-- 1.传递:data1为动态参数msg的参数名,名字自定义,与子组件接收参数名同名 data2为静态参数的参数名,名字自定义,与子组件接收参数名同名 --> .
2020-12-08 10:12:21
172
原创 原生js实现日历本,打卡专用。
<div style="width:100%;"> <input id="txtDt" type="text" /> </div><script type="text/javascript"> (function (){ function Dt(selector) { return new Dt.fn.init(selector); } Dt.fn = Dt.prototype = {.
2020-11-20 11:37:18
501
1
原创 echarts图形的参数设置和图形大小调整,map地图的中心坐标点修改。
<body> <!-- 饼图图形 --> <div id="pie"></div> <!-- 柱状图图形 --> <div id="bar"></div> <!-- 折线图图形 --> <div id="line"></div> <!-- 柱状折线图形 --> <div id="barLine"><
2020-11-20 11:24:31
7194
1
原创 正则解析标题
var title = '${年份}年${系统级次}${账本}总${收支类型}结构分析' var object=[ {biaoti:'收支类型',timu:'收入'}, {biaoti:'账本',timu:'一般公共预算'}, {biaoti:'系统级次',timu:'全县'}, {biaoti:'年份',timu:2020}, {biaoti:'科目级次',timu:1}, {biaoti:'数据类型',timu:'预算编制'}, ] for(var i=0;i<obj
2020-11-20 11:10:12
181
原创 h5使用jq实现登录记住账号密码
<div> <div class="login"> <input type="text" placeholder="账号" class="user"> <div style="height: 1px;background: #e4e4e4;float: left;margin: .2rem 0 .5rem;width: 100%"></div> <inp.
2020-11-20 11:04:51
788
原创 js判断是否是微信浏览器,和否是IE浏览器
// 判断是否是微信浏览器 函数封装function isWeixin(){ var ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i) == 'micromessenger'){ return true; }else{ return false; }} var userAgent = navigator.userAgent; /
2020-11-05 10:03:47
741
原创 js实现存储cookie获取cookie封装
//存储cookie 不设置时间为永久存储cookiefunction setCookie(cname, cvalue) { // var d = new Date(); // d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); // var expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + "; ";
2020-11-05 09:57:44
205
原创 js正则验证手机号,身份证号,邮箱。
//校验手机号码function phoneRuler(phone){ let reg = /^1[3|4|5|6|7|8|9][0-9]{9}$/; return reg.test(phone)}console.log(phoneRuler('13587264753')) //trueconsole.log(phoneRuler('1358726475')) //false// 校验身份证号码function isCardNo(card) { // 身份证号码为15位或者
2020-11-05 09:52:27
562
原创 jquery实现数据三级联动
<style> *{ margin: 0;padding: 0;} table {border-spacing: 0;border-collapse: collapse;} td { display: table-cell;vertical-align: inherit; } th {display: table-cell;vertical-align: inherit; font-weight: bold;height: 50px;} tr{height
2020-07-13 09:48:32
589
1
原创 js新建一个数组和对象把数据已字符串形式存入本地缓存
var arr = []; //新建一个数组 var objA= new Object(); //新建一个对象 objectA(); function objectA() { var tabitemhtml=''; objectB(msg[0].id) //传入数据的第一个id console.log(msg[0].id) for(var i=0;i<msg.length;i++){ ...
2020-07-13 09:43:55
1503
原创 js获取url链接参数的一些方法
//方法一function getQueryString(key) { var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)"); var result = window.location.search.substr(1).match(reg); return result ? decodeURIComponent(result[2]) : null;}//方法二function GetRequest(key)
2020-07-07 17:47:36
353
原创 javascript自定义rem还原设计稿
//根据设计稿750宽度(function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function () { var clientWidth = docEl.clientWidth; if (!clientWidth) return;
2020-07-07 17:37:41
187
原创 vue登录请求拦截响应,携带token
main.js//引入axiosVue.prototype.$axios = axios;axios.defaults.baseURL='http://127.0.0.1:8080/';axios.interceptors.request.use((config) => { config.headers.token = localStorage.getItem('token');; return config;});axios.interceptors.response.use((c
2020-07-07 17:20:02
1172
原创 js正则匹配标题
//自定义一个标题var title = '${年份}年${系统级次}${账本}总${收支类型}结构分析';//模拟数据 var object=[ {biaoti:'收支类型',timu:'收入'}, {biaoti:'账本',timu:'一般公共预算'}, {biaoti:'系统级次',timu:'全县'}, {biaoti:'年份',timu:2020}, {biaoti:'科目级次',timu:1}, {biaoti:'数据类型',timu:'预算编制'}, ] fo
2020-07-07 17:05:13
580
原创 启动node本地服务器
启动node本地服务器http-servernpm install -g express-generatorcnpm i nodemon -gexpress dome //项目名字cnpm inode app //启动项目
2020-05-23 22:01:39
433
原创 判断设备类型android和iphone
$(function () { // 判断设备类型 var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 if (isiOS == true) { addHeight();
2020-05-22 16:18:56
452
原创 H5页面调用原生方法返回
var userAgent = navigator.userAgent.toLowerCase();// 调用原生方法返回function back() { if (equipment('iphone')) { naviBack({ isRefresh: '0', callBack: 'isRefresh()' }); } else if (equipment('ipad')) { naviBack({ isRefresh:
2020-05-22 16:11:24
2566
原创 tab选项卡联动swiper轮播图
function tabs(obj, swiperObj, className, index) { var tabSwiper = new Swiper(swiperObj, { initialSlide: index, // 设定初始化时slide的索引 speed: 500, //滑动速度,单位ms // autoHeight: true, //高度随内容变化 onSlideChangeStart: function() {
2020-05-22 14:04:53
2063
原创 swiper轮播图
<!-- 轮播图 --> <div class="swiper-container swiper1"> <div class="swiper-wrapper"> <div class="swiper-slide"> <img src="./images/0.jpg" alt=""> </div> <div class="swiper-slide"> .
2020-05-22 14:02:33
225
原创 js实现日历
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Doc
2020-05-22 13:54:14
325
原创 js把时间转换为时间戳
var timer = Date.now();console.log(timer);var timestamp1 = Date.parse(new Date()); var timestamp2 = (new Date()).valueOf();var timestamp3 = new Date().getTime();console.log(timestamp1);console.log(timestamp2);console.log(timestamp3);var strtime =...
2020-05-22 13:50:04
3371
原创 jq实现tab选项卡
<div class="tab"> <ul class="tab-title"> <li class="this">网站设置</li> <li>用户管理</li> <li>权限分配</li> <li>商品管理</li> <li>订单管理</li>
2020-05-22 13:47:04
449
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人