
技术
高山我梦口香糖
这个作者很懒,什么都没留下…
展开
-
[socket.io]io.sockets.socket.get(socketId)根据id 获取当前socket
用 socket.to(SocketId).emit();也是可以解决的,参考文档如下。但是我在官方找不到get这个方式, 于是照了很久,终于找到外国人的讨论。是这样的, 想搞一个一对一聊天, 因为刚接触ws,不懂, 看到老师用。获取到那个socket,然后再emit.例如这样。房间 | Socket.IO。原创 2023-03-08 08:06:56 · 891 阅读 · 2 评论 -
网页劫持实现访问外站是否提示
我们经常看到这样的情况,在酷安或者贴吧或者别的网站访问外站链接时,会提醒你是否跳转,这个咋做的?很明显,对于当前域名来说, 第一和第4才是外站的链接,2和3能够直接跳转,可是怎么判断呢?这就简单了,只需要判断新旧的origin是不是一样就好了。1.先对a标签添加点击事件,这里我用到了事件委托。可以通过location.origin进行判断。我们先点击挨个点击打印看看他们的origin吧。效果展示,点击外站链接就弹窗询问。2.判断origin是否一样。1.对a标签进阻止默认跳转。原创 2022-10-04 18:34:38 · 426 阅读 · 0 评论 -
如何快速从url获取key的value值
1.实例化URLSearchParams,把问号后面的参数传进去,再通过get可以得到。如何得知他的name值对应的是什么?0.获取问号后面的参数。原创 2022-10-04 16:57:11 · 467 阅读 · 0 评论 -
观察者模式和发布订阅模式
接下来会举例小孩被大人观察的例子,大人时刻监听小孩的状态,如何做到,被观察的类观察者类好了,接下来写代码测试一下。原创 2022-08-22 19:26:35 · 359 阅读 · 0 评论 -
[vuex3罕见错误] rawModule is undefined
我想从vuex取出数据然后带到axios的请求头里,说一下为啥报错,我在aixos里引进store就报错,网上找找是因为循环引用?第二种方法,让store引入比组件先,因为组件内会用到vuex,vuex里调用axios,axios再引入sote,之前都没有store生成,引入个毛,所以要让store比组件早,看图,路由最先引入,可以从路由下手,在路由里面引入store。为什么这样可以,因为小仓库是个实打实的对象,肯定存在,第一种方法引入的小仓库,本身就是个对象,所以可以解决,,此时vuex已经存在了!原创 2022-08-20 15:55:42 · 484 阅读 · 1 评论 -
vue3 Teleport实现B站下滚大视频变小视频
vue3 Teleport实现B站大视频变小视频原创 2022-08-17 09:40:15 · 389 阅读 · 0 评论 -
vue2/3搭建小型的状态管理工具
vue2/3搭建小型的状态管理工具原创 2022-08-17 09:15:14 · 277 阅读 · 0 评论 -
防止xss攻击和h5标签转义
安装xss,然后后端把script标签转义了 入库的时候变成这样 前端如何把标签转义 安装lodash 取一个暂时值双向绑定,用计算属性转义返回绑定要提交的值然后就成了这样子 咋办,用v-html 变成这样原创 2022-07-12 11:11:19 · 588 阅读 · 0 评论 -
[优化]用indexedDb代替localstorage本地化多语言
搞个Db类再写两个触发函数,一个保存,一个获取初始化再调用即可原创 2022-06-17 14:00:17 · 259 阅读 · 0 评论 -
利用浏览器UA动态设置侧边折叠 宽度
判断是不是移动端,移动端的话就折叠侧边栏为0px首先这是pc端的这是移动端的根据浏览的ua判断,先写一个函数引入函数判断是不是移动端动态设置侧边栏宽度原创 2022-06-07 12:44:03 · 250 阅读 · 0 评论 -
解决AbortController中断请求无法再次请求
axios新方式中断请求文档:GitHub - axios/axios: Promise based HTTP client for the browser and node.js我看了一下api,文档:AbortSignal - Web API 接口参考 | MDN,AbortController - Web API 接口参考 | MDN这家伙是个只读属性,zza咋...原创 2022-05-01 14:17:05 · 4508 阅读 · 0 评论 -
解决setTimeout产生的闭包问题
一般来说,这段代码,绝对不是理想的for (var i = 0; i < 6; i++) { setTimeout(() => { console.log(i); }, 1000);}打印成这样先说两种解决方法:let和setTimeout的第三个参数另一种是letfor (let i = 0; i < 6; i++) { setTimeout(() => { console.log(i); }, 1000);}原创 2022-04-29 23:59:02 · 1096 阅读 · 0 评论 -
冒泡排序的优化
先看一下普通的冒泡排序let arr = [1, 23, 4, 2, 10, 23, 45, 6, 4] for (let i = 0; i < arr.length - 1; i++) { for (let j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { let t = arr[j] arr[j] = arr[j + 1]原创 2022-04-30 13:15:33 · 156 阅读 · 0 评论 -
vue3中用v-show触发的生命周期钩子以及注意事项
有以下结构,通过show真假值对组件life进行显示隐藏<template> <button @click="show = !show">隐藏</button> <life v-show="show" /></template>这是life组件的生命周期onBeforeMount(() => { console.log('onBeforeMount');})onMounted(() => { co.原创 2022-04-26 16:00:57 · 7820 阅读 · 1 评论 -
watch强制开启深度监听的情况
有以下数据结构let person = reactive({ age: "18", info: { name: "高山我梦" }}) <div>{{ person.info.name }}</div> <button @click="person.info.name = '盖亚'">改变</button>watch(person, (n, o) => { console.log(n); consol原创 2022-04-26 14:11:53 · 1783 阅读 · 0 评论 -
折腾vue3响应式原理(2)----Reflect对象
参考文档:Reflect - JavaScript | MDNReflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法得到一个属性更改一个属性当然增加也是可以的删除呢?配合proxy,实现简单的响应原理 <script> let person = { name: '高山我梦', age: 20 } let p = new Proxy(person, { ...原创 2022-04-25 20:52:50 · 909 阅读 · 0 评论 -
折腾vue3响应式原理(1)--proxy对象
参考文档Proxy - JavaScript | MDN<script> let person = { name: '高山我梦', age: 20 } let p = new Proxy(person, {}) </script>简单地操作一下这样是不是说完成了代理,我改源对象代理对象也改,我改代理对象源对象也改 👇👇👇响应式就这么简单?不,这只是简单代理而已,还没有操作呢!看Handler,也就.原创 2022-04-25 20:36:53 · 441 阅读 · 0 评论 -
分页器跳转页数参数
原创 2022-03-09 18:47:12 · 212 阅读 · 0 评论 -
组件间传递
引入store给点击按钮添加事件,用commit调动取反函数原创 2021-12-20 16:06:39 · 195 阅读 · 0 评论 -
【无标题】
vuex模块化思想先弄一个store文件夹,下面是各个小组件的名字暴露出去在总js里面注册一下原创 2021-12-18 18:38:12 · 80 阅读 · 0 评论 -
项目添加进度条
npm install --save nprogress在数据响应引入进度条和css打印出来,我需要的是开始和完成原创 2021-12-18 12:25:40 · 244 阅读 · 0 评论 -
多次点击出现NavigationDuplicated
多次点击出现NavigationDuplicated打印vueRouter的原型,上面写着重写他的push方法即可如果出现eslint,在后加上// eslint-disable-line no-unused-vars就行重写声明式导航没这样的问题原创 2021-12-17 19:20:01 · 83 阅读 · 0 评论 -
面试题:路由传参问题
不可以,二不传的话虽然query能在状态栏显示,但是地址是错误的,解决的办法啊就是在占位符加上?,在正则里问号就是0或1转载 2021-12-17 18:29:06 · 151 阅读 · 0 评论 -
footer的显示与隐藏
为了在某个页面显示与隐藏,这时候用到$route,每个组件都有一个$route找到他的path,如果路径是register和登录,就把footer组件隐藏要是有1000个网页呢?这样写太麻烦了,直接配置路由好了、给路由配上,...原创 2021-12-11 15:12:21 · 1162 阅读 · 0 评论 -
配置vue项目自动打开
在package.json 中加上--open就可以了,编译完自动打开"scripts":{"serve":"vue-cli-serviceserve--open","build":"vue-cli-servicebuild","lint":"vue-cli-servicelint"},原创 2021-12-09 20:16:36 · 894 阅读 · 0 评论 -
数据解构用法
letarr={ name:'高山我梦',agea:18};//想要拿到对象arr里面的name是拿不到的console.log(name);//<emptystring>------------------------------------------------------------------letarr={name:'高山我梦',...原创 2021-08-18 22:35:38 · 118 阅读 · 0 评论 -
box-sizing: border-box,盒子溢出
如果盒子溢出了加上 box-sizing:border-box; 可以减去相应的溢出部分原创 2021-08-18 20:53:29 · 297 阅读 · 0 评论