pan.stech168.com
Open in
urlscan Pro
114.115.139.143
Public Scan
URL:
https://pan.stech168.com/
Submission: On April 28 via api from US — Scanned from DE
Submission: On April 28 via api from US — Scanned from DE
Form analysis
2 forms found in the DOMPOST https://blogs.xrpweb.cn/
<form class="joe_header__above-search" method="post" action="https://blogs.xrpweb.cn/">
<input maxlength="16" autocomplete="off" placeholder="请输入关键字..." name="s" value="" class="input" type="text">
<button type="submit" class="submit">Search</button>
<span class="icon"></span>
<nav class="result">
<a href="https://pan.stech168.com/archives/297/" title="TypeError: Cannot read properties of undefined (reading 'map')" class="item">
<span class="sort">1</span>
<span class="text">TypeError: Cannot read properties of undefined (reading 'map')</span>
<span class="views">2,124 阅读</span>
</a>
<a href="https://pan.stech168.com/archives/495/" title="fail api scope is not declared in the privacy agreement" class="item">
<span class="sort">2</span>
<span class="text">fail api scope is not declared in the privacy agreement</span>
<span class="views">1,435 阅读</span>
</a>
<a href="https://pan.stech168.com/archives/391/" title="el-input自动获取焦点(element-ui)" class="item">
<span class="sort">3</span>
<span class="text">el-input自动获取焦点(element-ui)</span>
<span class="views">879 阅读</span>
</a>
<a href="https://pan.stech168.com/archives/428/" title="组件封装时判断slot是否存在" class="item">
<span class="sort">4</span>
<span class="text">组件封装时判断slot是否存在</span>
<span class="views">811 阅读</span>
</a>
<a href="https://pan.stech168.com/archives/449/" title="vscode代码切换大小写的教程" class="item">
<span class="sort">5</span>
<span class="text">vscode代码切换大小写的教程</span>
<span class="views">742 阅读</span>
</a>
</nav>
</form>
POST https://blogs.xrpweb.cn/
<form class="search" method="post" action="https://blogs.xrpweb.cn/">
<input maxlength="16" autocomplete="off" placeholder="请输入关键字..." name="s" value="" class="input" type="text">
<button type="submit" class="submit">Search</button>
</form>
Text Content
首页 关于 归档 留言板 友链 工具 更多 壁纸 视频 Search 1 TypeError: Cannot read properties of undefined (reading 'map') 2,124 阅读 2 fail api scope is not declared in the privacy agreement 1,435 阅读 3 el-input自动获取焦点(element-ui) 879 阅读 4 组件封装时判断slot是否存在 811 阅读 5 vscode代码切换大小写的教程 742 阅读 小程序 其他 服务器 开发 Vue uni-app React 登录 Search 标签搜索 * VUE * javascript * 小程序 * react * wxapp * uni-app * vue3 * HTML * CSS * 富文本 * npm * Vuex * GIT * Element-UI * Linux * 上传图片 * cookie * localStorage * sessionStorage * 内网穿透 Chris { "success": false, "code": 88888, "message": "接口路径不存在 请前往 https://api.vvhan.com/ 查看免费API接口列表" } * 累计撰写 106 篇文章 * 累计收到 6 条评论 * 首页 * 栏目 * 小程序 * 其他 * 服务器 * 开发 * Vue * uni-app * React * 页面 * 关于 * 归档 * 留言板 * 友链 * 工具 * 壁纸 * 视频 ITER 你点开呀 ITER 你点开呀 推荐 视频解析接口大全 推荐 微信小程序 数量增减 * 2,124 ℃ TypeError: Cannot read properties of undefined (reading 'map') * 1,435 ℃ fail api scope is not declared in the privacy agreement * 879 ℃ el-input自动获取焦点(element-ui) * 811 ℃ 组件封装时判断slot是否存在 * 最新文章 * 热门文章 * 评论最多 * 点赞最多 * 欢迎访问本站,多多鼓励 * 2022-05-25 置顶dayjs-入门及常用方法 dayjs是一个轻量的处理时间和日期的 JavaScript 库官方github github.com/iamkun/dayj… 中文使用文档 day.js.orgdayjs好处和Moment.js有着相同的API和模式不可变、持久性提供链式调用国际化标准超小的压缩体积,仅仅有2kb左右极大多数的浏览器兼容dayjs安装npm install dayjs --save import dayjs from 'dayjs'<script src="https://unpkg.com/dayjs"></script>Day.js 的返回值都是新的 Dayjs 对象dayjs 解析相关的API直接运行 dayjs(),得到包含当前时间和日期的 Dayjs 对象dayjs() //返回当前时间 Tue, 28 May 2019 05:57:34 GMT可以解析传入的一个标准的ISO 8601时间字符串。dayjs('1995-12-25') //Sun, 24 Dec 1995 16:00:00 GMT可以解析传入的一个 Javascript Date 对象。dayjs(new Date(2018, 8, 18)) //Mon, 17 Sep 2018 16:00:00 GMT可以解析传入的一个 Unix 时间戳 (13 位数字)。dayjs(1318781876406) //Sun, 16 Oct 2011 16:17:56 GMTDayjs 对象是不可变的,如果您想获得一个对象的拷贝,请执行 .clone()。 向 dayjs() 里传入一个 Dayjs 对象也能实现同样的效果。dayjs(Dayjs) dayjs().clone()检测当前 Dayjs 对象是否是一个有效的时间dayjs().isValid()dayjs 获取和设置相关的API获取或设置年份。dayjs().year() //2019 dayjs().year(2000) //Sun, 28 May 2000 06:14:07 GMT获取或设置月份。从 0 开始dayjs().month() //4 实际上5月 dayjs().month(0) //Mon, 28 Jan 2019 06:15:25 GMT获取或设置日期。从 1 开始dayjs().date() //28 当天是2019年5月28日 dayjs().date(1) //Wed, 01 May 2019 06:17:04 GMT获取或设置星期。从星期天 0 开始dayjs().day() //2 当天是星期二 dayjs().day(0) //Sun, 26 May 2019 06:18:13 GMT 被强行设置为上周日获取或设置小时dayjs().hour() //14 当时为下午2点 dayjs().hour(12) //Tue, 28 May 2019 04:21:30 GMT 不清楚获取或设置分钟。dayjs().minute() //22 dayjs().minute(59) //Tue, 28 May 2019 06:59:50 GMT获取或设置秒dayjs().millisecond() dayjs().millisecond(1)获取或设置毫秒。dayjs().millisecond() dayjs().millisecond(1)获取从 Dayjs 对象中取到的信息 传入的单位 (unit) 对大小写不敏感dayjs().get('month') //4单位缩写描述date 日期dayd星期几 (星期天 0, 星期六 6)monthM月 (一月 0, 十二月 11)yeary年hourh时minutem分seconds秒millisecondms毫秒设置时间dayjs().set('date', 1); dayjs().set('month', 3); // 四月 dayjs().set('second', 30);dayjs 操作相关API您可以对 Dayjs 对象如下增加减少之类的操作增加时间并返回一个新的 Dayjs() 对象。dayjs().add(value : Number, unit : String); dayjs().add(7, 'day'); //在当前的基础上加7天减少时间并返回一个新的 Dayjs() 对象。dayjs().subtract(value : Number, unit : String); dayjs().subtract(7, 'day'); //在当前基础上减少7天返回当前时间的开头时间的 Dayjs() 对象,如月份的第一天。dayjs().startOf(unit : String); dayjs().startOf('month'); //Tue, 30 Apr 2019 16:00:00 GMT 返回当前时间的末尾时间的 Dayjs() 对象,如月份的最后一天。dayjs().endOf(unit : String); dayjs().endOf('month'); //Fri, 31 May 2019 15:59:59 GMT显示相关的API格式化 Dayjs 对象并展示。接收一系列的时间日期字符串并替换成相应的值。dayjs().format(String) dayjs('2019-01-25').format('YYYY-MM-DD HH:mm:ss') dayjs().format('YYYY-MM-DD') dayjs().format('YYYY-MM') //2019获取两个 Dayjs 对象的时间差,默认毫秒。const date1 = dayjs('2019-01-25') const date2 = dayjs('2018-06-05') date1.diff(date2) // 20214000000 date1.diff(date2, 'month') // 7 date1.diff(date2, 'month', true) // 7.645161290322581 date1.diff(date2, 'day') // 233返回 Unix 时间戳 (毫秒)dayjs().valueOf()返回 Unix 时间戳 (秒)。dayjs().unix()返回月份的天数dayjs().daysInMonth()返回原生的 Date 对象。dayjs().toDate()当序列化 Dayjs 对象时,会返回 ISO8601 格式的字符串。dayjs().toJSON() //"2018-08-08T00:00:00.000Z"返回 ISO8601 格式的字符串。dayjs().toISOString()返回字符串dayjs().toString()查询相关的API检查一个 Dayjs 对象是否在另一个 Dayjs 对象时间之前。dayjs().isBefore(Dayjs, unit? : String); dayjs().isBefore(dayjs()); // false dayjs().isBefore(dayjs(), 'year'); // false检查一个 Dayjs 对象是否和另一个 Dayjs 对象时间相同。dayjs().isSame(Dayjs, unit? : String); dayjs().isSame(dayjs()); // true dayjs().isSame(dayjs(), 'year'); // true检查一个 Dayjs 对象是否在另一个 Dayjs 对象时间之后。dayjs().isAfter(Dayjs, unit? : String); dayjs().isAfter(dayjs()); // false dayjs().isAfter(dayjs(), 'year'); // false转自:https://juejin.cn/post/6933548549321785352 * 2022年05月25日 * 725 阅读 * 0 评论 * 0 点赞 小程序 * 2021-05-12 置顶GIT 常用命令整理 master : 默认开发分支; origin : 默认远程版本库初始化操作$ git config -global user.name <name> #设置提交者名字 $ git config -global user.email <email> #设置提交者邮箱 $ git config -global core.editor <editor> #设置默认文本编辑器 $ git config -global merge.tool <tool> #设置解决合并冲突时差异分析工具 $ git config -list #检查已有的配置信息创建新版本库$ git clone <url> #克隆远程版本库 $ git init #初始化本地版本库修改和提交$ git add . #添加所有改动过的文件 $ git add <file> #添加指定的文件 $ git mv <old> <new> #文件重命名 $ git rm <file> #删除文件 $ git rm -cached <file> #停止跟踪文件但不删除 $ git commit -m <file> #提交指定文件 $ git commit -m “commit message” #提交所有更新过的文件 $ git commit -amend #修改最后一次提交 $ git commit -C HEAD -a -amend #增补提交(不会产生新的提交历史纪录)查看提交历史$ git log #查看提交历史 $ git log -p <file> #查看指定文件的提交历史 $ git blame <file> #以列表方式查看指定文件的提交历史 $ gitk #查看当前分支历史纪录 $ gitk <branch> #查看某分支历史纪录 $ gitk --all #查看所有分支历史纪录 $ git branch -v #每个分支最后的提交 $ git status #查看当前状态 $ git diff #查看变更内容撤消操作$ git reset -hard HEAD #撤消工作目录中所有未提交文件的修改内容 $ git checkout HEAD <file1> <file2> #撤消指定的未提交文件的 修改内容 $ git checkout HEAD. #撤消所有文件 $ git revert <commit> #撤消指定的提交分支与标签$ git branch #显示所有本地分支 $ git checkout <branch/tagname> #切换到指定分支或标签 $ git branch <new-branch> #创建新分支 $ git branch -d <branch> #删除本地分支 $ git tag #列出所有本地标签 $ git tag <tagname> #基于最新提交创建标签 $ git tag -d <tagname> #删除标签合并与衍合$ git merge <branch> #合并指定分支到当前分支 $ git rebase <branch> #衍合指定分支到当前分支远程操作$ git remote -v #查看远程版本库信息 $ git remote show <remote> #查看指定远程版本库信息 $ git remote add <remote> <url> #添加远程版本库 $ git fetch <remote> #从远程库获取代码 $ git pull <remote> <branch> #下载代码及快速合并 $ git push <remote> <branch> #上传代码及快速合并 $ git push <remote> : <branch>/<tagname> #删除### 远程分支或标签 $ git push -tags #上传所有标签本文转自: 知了博客 ,如有侵犯,请通知进行清除 * 2021年05月12日 * 243 阅读 * 0 评论 * 1 点赞 开发 * 2023-11-25 置顶fail api scope is not declared in the privacy agreement 小程序隐私保护指引设置,小程序隐私协议开发指南 * 2023年11月25日 * 1,435 阅读 * 0 评论 * 0 点赞 小程序 * 2023-11-07 置顶vue3使用wangEditor-v5学习笔记(三)添加查看源码功能 再完美的编辑器,如果不能直接修改源码,我总觉得欠缺些什么,当然对于大部分不懂代码的人来说,这个功能毫无用处,但是会与懂html代码的来说,那就非常有必要了,这样就能更精细的修改内容了。菜单分为几种,都可以扩展ButtonMenu 按钮菜单,如加粗、斜体SelectMenu 下拉菜单,如标题、字体、行高DropPanelMenu 下拉面板菜单,如颜色、创建表格ModalMenu 弹出框菜单,如插入链接、插入网络图片我们这里以ButtonMenu菜单为例,先在编辑器下方添加一个隐藏的div,这个div用来展示源码的,textarea也是双向绑定valueHtml的值,当编辑器里的内容改变时,源码也会同时改变。<template> <div style="border: 1px solid #ccc"> <Toolbar style="border-bottom: 1px solid #ccc" :editor="editorRef" :defaultConfig="toolbarConfig" :mode="mode" /> <Editor style="height: 500px; overflow-y: hidden;" v-model="valueHtml" :defaultConfig="editorConfig" :mode="mode" @onCreated="handleCreated" @onChange="handleChange"/> </div> <div class="hideSource" style="margin-top: 10px;width: 100%;display: none;"> <textarea v-model="valueHtml" style="width: 100%; height: 200px; outline: none" ></textarea> </div> </template>然后实现MyButtonMenu类,必须要实现isActive、getValue、isDisabled、exec四个方法,其中exec是重点,也就是点击这个button触发的事件,新建menu.jsimport { Boot } from '@wangeditor/editor' //import format from 'xml-formatter' // 定义菜单 class class MyButtonMenu { title = '源码' tag = 'button' alwaysEnable = true isActive() { this._isactive = !this._isactive return this._isactive } getValue() { return '' } isDisabled() { return false } exec() { const div = document.querySelectorAll('.hideSource')[0] if (div.style.display === 'block') { div.style.display = 'none' } else { div.style.display = 'block' } } } // 定义菜单配置 export const menuSource = { key: 'menusource', // menu key ,唯一。注册之后,可配置到工具栏 factory() { return new MyButtonMenu() }, } Boot.registerMenu(menuSource)插入此buttonconst toolbarConfig = { insertKeys: { index: 0, // 插入的位置,基于当前的 toolbarKeys keys: ['menusource'] }, /* 工具栏配置 */ toolbarKeys: toolBar } * 2023年11月07日 * 95 阅读 * 0 评论 * 0 点赞 开发 * 2023-10-10 置顶yarn的安装和使用 yarn的简介Yarn是facebook发布的一款取代npm的包管理工具yarn的特点速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。yarn的安装下载node.js,使用npm安装npm install -g yarn 查看版本:yarn --version安装node.js,下载yarn的安装程序:提供一个.msi文件,在运行时将引导您在Windows上安装YarnYarn 淘宝源安装,分别复制粘贴以下代码行到黑窗口运行即可yarn config set registry https://registry.npm.taobao.org -g yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -gyarn的常用命令安装yarn npm install -g yarn 安装成功后,查看版本号: yarn --version 创建文件夹 yarn md yarn 进入yarn文件夹 cd yarn 初始化项目 yarn init // 同npm init,执行输入信息后,会生成package.json文件 yarn的配置项: yarn config list // 显示所有配置项 yarn config get <key> //显示某配置项 yarn config delete <key> //删除某配置项 yarn config set <key> <value> [-g|--global] //设置配置项 安装包: yarn install //安装package.json里所有包,并将包及它的所有依赖项保存进yarn.lock yarn install --flat //安装一个包的单一版本 yarn install --force //强制重新下载所有包 yarn install --production //只安装dependencies里的包 yarn install --no-lockfile //不读取或生成yarn.lock yarn install --pure-lockfile //不生成yarn.lock 添加包(会更新package.json和yarn.lock): yarn add [package] // 在当前的项目中添加一个依赖包,会自动更新到package.json和yarn.lock文件中 yarn add [package]@[version] // 安装指定版本,这里指的是主要版本,如果需要精确到小版本,使用-E参数 yarn add [package]@[tag] // 安装某个tag(比如beta,next或者latest) //不指定依赖类型默认安装到dependencies里,你也可以指定依赖类型: yarn add --dev/-D // 加到 devDependencies yarn add --peer/-P // 加到 peerDependencies yarn add --optional/-O // 加到 optionalDependencies //默认安装包的主要版本里的最新版本,下面两个命令可以指定版本: yarn add --exact/-E // 安装包的精确版本。例如yarn add foo@1.2.3会接受1.9.1版,但是yarn add foo@1.2.3 --exact只会接受1.2.3版 yarn add --tilde/-T // 安装包的次要版本里的最新版。例如yarn add foo@1.2.3 --tilde会接受1.2.9,但不接受1.3.0 发布包 yarn publish 移除一个包 yarn remove <packageName>:移除一个包,会自动更新package.json和yarn.lock 更新一个依赖 yarn upgrade 用于更新包到基于规范范围的最新版本 运行脚本 yarn run 用来执行在 package.json 中 scripts 属性下定义的脚本 显示某个包的信息 yarn info <packageName> 可以用来查看某个模块的最新版本信息 缓存 yarn cache yarn cache list # 列出已缓存的每个包 yarn cache dir # 返回 全局缓存位置 yarn cache clean # 清除缓存npm 与 yarn命令比较比如说你的项目模块依赖是图中描述的,@1.2.1代表这个模块的版本。在你安装A的时候需要安装依赖C和D,很多依赖不会指定版本号,默认会安装最新的版本,这样就会出现问题:比如今天安装模块的时候C和D是某一个版本,而当以后C、D更新的时候,再次安装模块就会安装C和D的最新版本,如果新的版本无法兼容你的项目,你的程序可能就会出BUG,甚至无法运行。这就是npm的弊端,而yarn为了解决这个问题推出了yarn.lock的机制,这是作者项目中的yarn.lock文件。{callout color="#f0ad4e"}注意:这个文件不要手动修改它,当你使用一些操作如yarn add时,yarn会自动更新yarn.lock。{/callout} * 2023年10月10日 * 53 阅读 * 0 评论 * 0 点赞 服务器 * 2023-09-01 置顶鹊刀门传奇 某朝末年,倭乱四起,宦官专权,东厂曹公公勾结倭寇,残害中原武林,意欲谋反。长海对外身份是鹊刀门掌门,实则是秘密抗倭组织成员,除了剿灭倭寇,另一项重要任务就是查出勾结倭寇的朝中汉奸。而同时曹公公也发现有反对自己的武林人士存在,暗中派人监视武林各门派的一举一动。因要掩人耳目,并同时进行秘密任务,西门长海找到远在家乡的孪生兄弟西门长在,让他,冒充自己。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?虽是孪生兄弟,西门长海和西门长在兄弟俩的个性和人生道路完全不同,弟弟是英雄虎胆的一代大侠,哥哥则是胆小懦弱的市井伙夫。面对弟弟的请求,胆小怕事的西门长在一万个不答应,奈何顶住了弟弟长海的威逼利诱,却顶不住弟弟许诺给他找个“老伴”的色诱,于是半推半就的同意冒名顶替。就这样,西门长在稀里糊涂的从一个掌勺摇身一变成为掌门,进入了光怪陆离的武侠世界。 * 2023年09月01日 * 63 阅读 * 0 评论 * 0 点赞 其他 * 2023-06-15 置顶js 获取元素的高度 在JavaScript中,你可以使用不同的方法来获取元素的高度。以下是几种常用的方法:1.offsetHeight: offsetHeight属性返回一个元素的像素高度,包括元素的可见内容、内边距和边框的高度。它不包括外边距和滚动条的高度。var element = document.getElementById("myElement"); var height = element.offsetHeight; console.log(height);2.clientHeight: clientHeight属性返回一个元素的像素高度,包括元素的内边距,但不包括边框、外边距和滚动条的高度。它表示元素在视口中可见的高度。var element = document.getElementById("myElement"); var height = element.clientHeight; console.log(height);3.scrollHeight: scrollHeight属性返回一个元素的像素高度,包括元素的实际内容高度,即使内容在视口中不可见。如果内容超出了元素的可见部分,scrollHeight将返回一个大于 clientHeight的值。var element = document.getElementById("myElement"); var height = element.scrollHeight; console.log(height);需要注意的是,这些属性返回的高度值是一个整数,表示像素的数量。另外,如果你使用的是jQuery库,可以使用其提供的方法来获取元素的高度,例如height()方法。var height = $("#myElement").height(); console.log(height);以上是获取元素高度的一些常用方法,你可以根据自己的需求选择适合的方法来获取元素的高度。原文地址:点击跳转 * 2023年06月15日 * 72 阅读 * 0 评论 * 1 点赞 开发 * * 查看更多 Chris { "success": false, "code": 88888, "message": "接口路径不存在 请前往 https://api.vvhan.com/ 查看免费API接口列表" } 106 文章数 6 评论量 时钟 最新回复 * 打豆豆 2023-08-13 # 图片回复 * 1 2023-07-22 # 图片回复 * 啊啊啊 2023-07-19 求源码谢谢大大 * fa 2023-07-16 # 图片回复 * 匿名访客 2021-03-12 # 图片回复 今日天气 Berlin 切换 和风天气 标签云 VUEjavascript小程序reactwxappuni-appvue3HTMLCSS富文本npmVuexGITElement-UILinux上传图片cookielocalStoragesessionStorage内网穿透 * * * * * * * * * * * * * * * * * * * * 已运行 1213 天 13 时 10 分 00 秒 RSS MAP