- 博客(32)
- 收藏
- 关注
原创 js作用域、预解析
例题 function fn(a, c) { console.log(a); var a = 123; console.log(a); console.log(c); function a() {} if (false) { var d = 678; } console.log(d); console.log(b); var
2022-03-29 14:30:34 276
原创 vue2和vue3响应式原理对比
vue2响应式原理实现原理:对象类型: 通过Object.defineProperty() 对属性的读取、修改进行拦截(数据劫持)数据类型: 通过重写更新数组的一系列方法来实现拦截(对数组的变更方法进行了包裹)Object.defineProperty(data,'count',{ get(){}, set(){}})存在问题:新增属性、删除属性,界面不会更新直接通过下标修改数组,界面不会自动更新vue3响应式原理实现原理:通过Proxy(代理): 拦截对象任意属性
2022-03-09 14:18:57 224
原创 element-ui时间选择器如何把今日日期改为“至今”
通过类名控制, 今日日期的盒子上面有‘today’类名/deep/.available.today span { color: #fff; &::after { content: "至今"; font-size: 12px; color: #03dbc6; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100.
2022-03-04 15:37:25 1462
原创 input标签在谷歌浏览器记住密码的自动填充问题
<input type='password' readonly onfocus="this.removeAttribute('readonly');" />
2021-12-02 15:53:48 338
原创 $forceUpdate()
$forceUpdate 强制更新你可能还没有留意到数组或对象的变更检测注意事项,或者你可能依赖了一个未被 Vue 的响应式系统追踪的状态。然而,如果你已经做到了上述的事项仍然发现在极少数的情况下需要手动强制更新,那么你可以通过 $forceUpdate 来做这件事。...
2021-11-24 10:28:16 207
原创 vue项目打包上线修改dist文件名
vue.config.jsconst path = require('path')const resolve = dir => path.join(__dirname, dir)module.exports = { // 基本路径 publicPath: './', // 输出文件目录(默认dist) outputDir: 'web', // 关闭eslint验证 lintOnSave: false, // 静态目录代理 chainWebpack: config =>
2021-05-19 10:49:45 2066
原创 es6
实例方法:includes(), startsWith(), endsWith()传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三种新方法。includes():返回布尔值,表示是否找到了参数字符串。startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。let s = 'Hello world!';s.startsWith('Hel
2021-05-08 13:44:31 62
原创 组件化思路(tabbar)
组件封装组件为的是以后可以拿来直接用,在使用组件的页面中可以灵活的改变组件的文字、个数、图片、背景、字体颜色以及一些其他效果,可以让别人动态的决定以封装tabbar组件为例,实现思路先在app.vue页面写所需要的基本结构,然后抽取tabber中现实的内容由外界决定(要定义插槽slot,flex布局)自定义tabBarItem,可以传入图片和文字tabbar<template> <div> <div class="tab_bar">
2021-04-28 10:18:17 90
原创 vuecli3的一些配置
vue.config.js的一些配置// 路径起别名module.exports ={ configureWebpack:{ resolve:{ alias:{ 'assets' :'@/assets', 'common': '@/common', 'components':'@/components', 'views':'@/views
2021-04-27 17:08:13 99
原创 callee和caller
callee该属性是一个指针,指向拥有这个argument对象的函数function factorial(num){ if (num <=1) { return 1; } else { return num * factorial(num-1) } }// 定义函数一般都要用到递归算法,如上面的代码所示,在函数有名字,而且名字以后也不会变的情况下,这样定义没有问题// 但问题是这个函数的执行与函数名factorial紧紧耦合在了一起,为了消除这种紧密的耦合现象,可以像下面
2021-03-08 16:46:45 168
原创 小程序之获取用户的收货地址
思路分析获取用户的收货地址绑定点击事件调用小程序内置api 获取用户的收货地址wx.chooseAddress获取用户对小程序所授予获取地址的权限状态scope当用户点击确定时 scope的值为true直接调用获取收货地址api当用户没有调用过获取收货地址的api scope的值为undefined直接调用获取收货地址api当用户点击取消时 scope的值为false,诱导用户自己打开授权设置页面 当用户重新给予获取收货地址权限时调用获取收货地址api
2021-02-25 10:35:24 492
原创 拖拽上传
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>h5拖拽</title> <style> label { di
2021-02-23 15:09:47 70
原创 允许表单输入的内容为1-6000
// 当为1到3位数时,第1位可以为1-9,后几位可以没有或者为任意数 var reg1 = /^[1-9][\d]{0,2}$/; // 当为4位数,第1位为1-5时,后3位可以为任意数 var reg2 = /^[1-5][\d]{3}$/; // 当为4位数,第1位为6时,后三位为0 var reg3 = /^[6][0]{3}$/;...
2021-02-20 13:10:50 74
原创 实现点击复制功能
html<style> .copy_box { position:relative; width:400px; height:40px; } .copy_input { width:100%; height:100%; font-size: 14px; padding-left: 13px; padding-right: 80px; border: 1px solid #e1e7f2; border-radius: 4px;
2021-02-18 16:08:07 10966 5
原创 主题颜色通过变量来实现
css// 定义div{ --themeColor:"red",}// 使用div {background:var(--themeColor);}less// 定义@themeColor :"red",// 使用div {background:@themeColor;}
2021-01-27 11:31:56 206
原创 H5移动端底部input唤醒手机软键盘遮挡输入框问题解决办法
// An highlighted block <input type="text" value="" class="tinput" />; //针对直接在浏览器打开此方法有效 $(".tinput").bind("focus", function () { // 软键盘弹起之后再调整滚动条位置 if ($(this).offset().top > document.body.scrollHeight / 2) {
2020-12-29 11:27:37 432
原创 break和continue语句
for循环嵌套问题var num = 0; outermost: for (var i=0; i < 10; i++) { for (var j=0; j < 10; j++) { if (i == 5 && j == 5) { break outermost; } num++; } } alert(num); //55/* * 当i,j都为5时,num是怎么得到55的? * 中止循环条件为i,j同时为5。 * 外部循环中i要从0变为
2020-12-28 13:18:51 100
原创 fromCharCode将Unicode编码返回一个字符串
定义和用法fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串语法String.fromCharCode(numX,numX,...,numX)// 举例document.write(String.fromCharCode(72,69,76,76,79)) //HELLOdocument.write(String.fromCharCode(65,66,67)) //ABC// 大写字母A~Z的ASCII码就是从65开始+0~25// 小写字母a~z的AS
2020-12-17 11:01:01 602
原创 rem的一般配置
// 原始根目录字体大小为100px,设计图750(function(doc, win) { var docEl = doc.documentElement, resizeEvt = "onorientationchange" in window ? "onorientationchange" : "resize", recalc = function() { var clientWidth = docEl.clientWidth; if (!cli
2020-12-03 10:14:34 310 1
原创 jq.form提交上传文件的方法
// 下载引入jQuery Form // form表单准备好 <form method="post" enctype="multipart/form-data"></form> // 配置 var options = { target: '#output', // 把服务器返回的内容放入id为output的元素中 beforeSu...
2020-11-23 13:33:00 708
原创 样式初始化设置(参考)
html,body,div,span,h1,h2,h3,h4,h5,h6,p,a,img,b,u,i,dl,dt,dd,ol,ul,li,form,label,table,tbody,tfoot,thead,tr,th,td,article,aside,footer,header,menu,nav,section,audio,video,canvas,{ margin: 0; padding: 0; -webkit-
2020-11-20 16:50:55 189
原创 倒计时60分钟
分析一天的毫秒数: 1000x60x60x24整天: 总的毫秒数 / 一天的毫秒数小时:(总的毫秒数 / 一个小时的毫秒数)% 24小时ps: 因为整小时部分已经被整天拿走了,相除剩下的就是剩余小时数量,再取余24小时就可以得到剩下多少个小时分钟: 和小时的计算一样,去掉整分钟数,用余下的分钟数 % 60分钟就可以得到剩下的分钟数秒: 秒的计算一样60分钟倒计时 function time() { var endtime = +new Date() + 3600000;
2020-11-20 16:17:42 1174
原创 避免静态资源缓存
引入css避免静态资源缓存<script> document.write("<link rel='stylesheet' href='../css/common.css?v=" + Date.now() + "' />");</script>引入js避免静态资源缓存<script> document.write("<script src='../js/common.js?v=" + Date.now() + "'></s
2020-11-20 16:17:32 159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人