- 博客(71)
- 收藏
- 关注
原创 使用 Nginx 将 HTTP 重定向到 HTTPS
注意,这里的服务器名字(server name)是个通配符_:也就是无论 URL 中包含什么域名,当请求到达 Nginx 服务器以后,都会被重定向到 HTTPS。比如说,无论是 http://h5.1024bugs.top 还是 http://www.1024bugs.top,都会被重定向到它们相应的 HTTPS 链接。HTTP 流量在 80 号端口被监听。这里我们将全部 HTTP 的流量都永久重定向到 HTTPS(301)。重定向时,保留原有的主机(host)和请求 URI。
2024-02-21 09:07:38
1065
原创 开发问题记录
vant开发的组件库初次渲染没问题,只要跳转至其他页面再进来设置的label-align属性就会丢失不生效。原因: 进入其他页面加载了主项目的vant库的css优先级层级高,然后就把组件本身的样式覆盖了,解决思路: 使用渗透把主项目的样式给重写覆盖。
2023-12-01 16:35:34
210
原创 IntersectionObserver 实现懒加载
数组里的每一项中的 isIntersecting: true 表示该元素与设置的目标元素有交叉。target 是监听的 dom 卸载时可使用。打印 entries 得到一个数组,rootMargin 图解。
2023-05-29 09:37:41
367
原创 vue 自定义组件实现v-mode
有时候我们需要对自定义的组件实现v-model的双向绑定。v-model实际是v-bind和v-on的语法糖的写法。所以我们封装自己的组件就可以利用这点来封装。首先我们得知道v-model的原理。语法糖v-model的写法。
2022-10-21 15:36:00
1482
原创 vue 利用 screenfull 实现全屏
其实我们可以利用 screenFull 的监听事件, 来实现屏幕的全屏和退出全屏的监听,当然使用原生的api也是可以实现的, 不过代码会显得有点臃肿。有时候我们实现的全屏点击的时候icon图标可以正常切换, 但是如果按 esc 键退出的话就不能监听到退出全屏导致icon展示不正确。
2022-10-10 09:56:55
1926
6
原创 Element ui 表单动态去掉某一项的校验
// 方式一this.$refs.ruleForm.clearValidate('input2')// 方式二this.$refs.ruleForm.fields.map(i => { if (i.prop === 'input2') { i.clearValidate() }})
2022-03-22 15:59:26
4242
原创 vscode格式化
安装这三个插件1. 第一步ESLintPrettier - Code formatterVetur2. 第二步找到setting.js文件文件->首选项->设置替换 { // vscode默认启用了根据文件类型自动设置tabsize的选项 "editor.detectIndentation": false, // 重新设定tabsize "editor.tabSize": 4, // #每次保存的时候自动格式化 "editor.formatOn
2022-03-21 15:57:09
3661
原创 rem适配
js适配!function (window) { /* 设计图文档宽度 */ var docWidth = 750; var doc = window.document, docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resiz
2022-03-10 11:19:18
147
原创 字节手写面试题
1.获取字符出现的次数let str = 'aaaauedawwwwa'function getStr(str) { let o = {} for(let i = 0; i < str.length; i++) { let key = str.charAt(i) if (o[key]) { o[key] ++ } else { o[key] = 1 } } return o}console.log(getStr(str)) // {a: 6, u: 1, e
2022-03-09 16:18:45
245
原创 js 手写 深拷贝, 数据扁平化, 柯里化
1. 深拷贝let arr = [1, [{name: '张三'}, [18, 22], undefined], null, 'hello']function deepClone(target) { let result; if (typeof target === 'object') { if (Array.isArray(target)) { result = [] for (let i in target) { // 递归克隆数组中的每一项
2022-03-01 16:05:01
157
原创 js replace的使用
replace可以传入两个参数replace(‘要替换的值’, ‘替换成的值’)replace两个参数中的第一个参数可以是一个字符串,也可以是一个正则表达式如果第一个参数是一个字符串, 则遇到匹配的字符就会执行替换,就不会再继续执行替换后面的字符let str = 'Hello _小明'str.replace('l', '**') // 'He**lo _小明'第一个字符可以是一个正则表达式来进行全部匹配替换let str = 'Hello _小明_ll_18'str.replace
2022-03-01 14:29:09
3931
原创 vue3兄弟组件传值方式mitt.js
vue3中兄弟组件传值的方式mitt下载mittyarn add mitt 或者npm install mitt方式一: 在main.js中注册挂载到全局import { createApp } from 'vue'import { createPinia } from 'pinia'import App from './App.vue'// 导入mittimport mitt from 'mitt'const app = createApp(App)// vue3挂载到全局ap
2022-02-16 16:21:22
5292
原创 Pinia的使用
1. Pinia 是什么?Pinia 是一个用于 Vue 的状态管理库,类似 Vuex, 是 Vue 的另一种状态管理方案Pinia 支持 Vue2 和 Vue3 相比vuex去掉了mutations,操作数据更简单灵活方便2. Pinia 优势简单易于学习轻量化, 仅有 1 KB模块化设计,便于拆分状态3. 安装 Pinia使用 npmnpm install pinia使用 yarnyarn add pinia4. 使用1.在main.js中注册并使用import
2022-02-16 11:50:02
2658
原创 toLocalString()妙用
toLocalString()的妙用1. 可以直接得到钱的分割效果let num = 1000000num.toLocalString() // '1,000,000'2.上面方法或许你还要自己再拼接 ¥ 来达到 ¥1,000,000.00 的效果用以下方法可以直接得到 ¥1,000,000.00 的效果let num = 1000000num.toLocaleString('zh',{ style: 'currency', currency: 'cny' }) // '¥1,000,0
2022-01-07 14:07:11
820
原创 react常用生命周期
react的生命周期1.初始化过程constructor()接收参数只会触发一次!!2.挂载过程(Mounting)componentWillMount在组件即将被挂载到页面的时刻自动执行。render()将组件挂载到页面。componentDidMount组件被挂载到页面之后立即执行请求一般放在这里componentWillReceiveProps在组件接收到一个新的 prop(更新后)时被调用。这个方法在初始化render时不会被调用。shouldCo
2021-12-24 15:05:40
166
原创 前端请求常见状态码
前端请求常见状态码1.成功类(请求已经被成功处理了)200 请求已成功,返回想要的东西。出现此状态码是表示正常状态。(所有人都喜欢的)201 请求成功,服务器正在创建请求的资源202 服务器收到请求了,但是未处理203 服务器成功处理,但是返回的信息是另一个来源204 服务器成功处理,但是没有返回内容 205 服务器成功处理,但是没有返回内容206 成功处理了部分get请求重定向类(要完成请求,需要进一步操作)300 针对请求,服务器可执行多种操作301 请求的网页已永久
2021-12-08 14:44:22
2718
2
原创 Taro编译小程序获取不到节点数据(自动滚动到元素底部)
1.Taro编译小程序获取不到节点数据1.1 小程序报错情况: 看官方文档说使用 => let query = Taro.createSelectorQuery() 来获取节点,死活是拿不到数据,一直报上面的错误,但在h5是编译正常的,一度的怀疑人生后来查询资料时看到createSelectorQuery只能选择内置组件…心里一万个…官方文档都不带说清楚的吗如果不是内置组件需要使用Taro.createSelectorQuery().in(this.$scope)来获取节点数据…最终代码
2021-12-08 14:11:11
1623
原创 快速删除node_modules文件
快速删除node_modules文件1.全局安装rimraf模块,利用命令来删除node_modules文件安装npm install rimraf -g===>>进入node_modules文件所在目录 ===>> 执行rimraf node_modules 来删除node_modules文件rimraf node_modules...
2021-11-30 11:33:28
401
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人