<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[high32的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/high32</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; high32]]></copyright><item><title><![CDATA[关于本地调试不携带cookie]]></title><link>https://blog.youkuaiyun.com/high32/article/details/127144924</link><guid>https://blog.youkuaiyun.com/high32/article/details/127144924</guid><author>high32</author><pubDate>Sun, 02 Oct 2022 18:07:10 +0800</pubDate><description><![CDATA[最近做公司vue老项目，登录成功后又调取其他接口来获取个人信息，发现在线上运行正常，到了本地调试接口报401，跳转登录页面，登录页面判断已登录又去调个人信息的接口，接口报401又跳转登录页面，无限循环下去了…… 通过比较发现，这个获取个人信息的接口在本地调试时没有携带cookie，而在线上却携带了。
问了其他同事，说换火狐浏览器，还要是低版本的。之前就听说过这样的情况是浏览器机制的问题，谷歌和edge不行，只有火狐好使，我在想到底是什么机制 ，没听说过呢？这次遇到，是时候要清楚了。
说要低版本火狐是吧，首先]]></description><category></category></item><item><title><![CDATA[hexo博客使用docker自动化部署阿里云]]></title><link>https://blog.youkuaiyun.com/high32/article/details/126186990</link><guid>https://blog.youkuaiyun.com/high32/article/details/126186990</guid><author>high32</author><pubDate>Fri, 05 Aug 2022 22:46:22 +0800</pubDate><description><![CDATA[起因
接上一篇hexo博客docker部署阿里云的一点心得 之后，第二次上传文章的时候发现，从dockerhub仓库拉取自己的镜像非常慢，而且基本都是timeout拉不下来，尝试改镜像源什么的没啥效果。
在修改镜像源的过程中发现了阿里云容器镜像服务，发现它个人版还是免费的，经测试，拉取镜像速度很快，于是就用上了它。
又想到，每次发文章都要push代码，然后登陆ecs再用docker pull下来，然后再run起来.......是不是太麻烦了，是不是可以一步到位，只要push完代码就行了，其他的交给git .]]></description><category></category></item><item><title><![CDATA[hexo博客docker部署阿里云的一点心得]]></title><link>https://blog.youkuaiyun.com/high32/article/details/125960136</link><guid>https://blog.youkuaiyun.com/high32/article/details/125960136</guid><author>high32</author><pubDate>Sun, 24 Jul 2022 15:49:41 +0800</pubDate><description><![CDATA[1初衷：
自己的博客证书一直有问题，不管是宝塔里申请的Let‘s encrypt，还是阿里云的免费证书，于是想到部署上nginx配置，再用docker，多网站方便管理，就当学习了。
2思路：

push代码到git触发action动作，docker build镜像到docker hub；配置好nginx，多域名分发；在阿里云上pull镜像，然后run。
3使用：
hexo、git actions、docker/docker-compose、docker hub、nginx、阿里云
4过程：
1. docke]]></description><category></category></item><item><title><![CDATA[从浏览器到堆栈]]></title><link>https://blog.youkuaiyun.com/high32/article/details/124917594</link><guid>https://blog.youkuaiyun.com/high32/article/details/124917594</guid><author>high32</author><pubDate>Sun, 22 May 2022 22:21:17 +0800</pubDate><description><![CDATA[从浏览器到堆栈浏览器的理解浏览器内核的理解内核组成：常见内核：浏览器的工作原理浏览器渲染原理js 引擎为什么需要 js 引擎？常见的 js 引擎V8 引擎V8 引擎架构V8 的解析过程js 代码的执行过程js 变量到底存在栈上还是堆上？栈和堆**V8 引擎**中 js 变量存在堆上后记：参考：
浏览器的理解
浏览器的功能是将用户选择的 web 资源呈现出来，需要从服务器请求资源，并将其显示到浏览器窗口中，资源的格式通常是 HTML，也包括 PDF、image 及其他格式。用户用 URI（Uniform Re]]></description><category></category></item><item><title><![CDATA[写一个自己的cli前后端脚手架]]></title><link>https://blog.youkuaiyun.com/high32/article/details/124516800</link><guid>https://blog.youkuaiyun.com/high32/article/details/124516800</guid><author>high32</author><pubDate>Sat, 30 Apr 2022 18:48:36 +0800</pubDate><description><![CDATA[写一个自己的cli前后端脚手架功能：使用：效果：技术点：一、创建项目二、工作流程三、commander 解析命令行参数四、inquirer 命令行交互五、创建工程化项目模板动态导入路由：动态导入 vuex：六、dowload-git-repo 下载项目模板七、ora/chalk 美化输出ora 增加 loading 效果chalk 美化输出语句八、创建组件/路由/vuex 模板创建命令编写模板文件编译 ejs，写入文件九、修改项目名称十、npm install 下载依赖十一、npm start 运行项目十二]]></description><category></category></item><item><title><![CDATA[hexo部署到阿里云ECS遇到的问题]]></title><link>https://blog.youkuaiyun.com/high32/article/details/124336514</link><guid>https://blog.youkuaiyun.com/high32/article/details/124336514</guid><author>high32</author><pubDate>Fri, 22 Apr 2022 08:24:38 +0800</pubDate><description><![CDATA[hexo部署到阿里云ECS遇到的问题


hexo添加备案号
在主题文件footer添加


hexo移除algolia
在站点文件_config移除，主题文件_config 设为false


hexo-butterfly本地搜索无效？
未解决


宝塔面板不支持根目录设置在……文件下
最后/var/…都换成/www/wwwroot/… 目录
/repo和/hexo都要给权限

Hexo 部署至云服务器（宝塔面板） - 黑石博客 - Hexo博客 (heson10.com)



does not app]]></description><category></category></item><item><title><![CDATA[再次深入git]]></title><link>https://blog.youkuaiyun.com/high32/article/details/122809001</link><guid>https://blog.youkuaiyun.com/high32/article/details/122809001</guid><author>high32</author><pubDate>Mon, 07 Feb 2022 15:02:42 +0800</pubDate><description><![CDATA[git命令全揭秘]]></description><category></category></item><item><title><![CDATA[element-ui弹出框popover点击外部不消失的解决办法]]></title><link>https://blog.youkuaiyun.com/high32/article/details/122687238</link><guid>https://blog.youkuaiyun.com/high32/article/details/122687238</guid><author>high32</author><pubDate>Tue, 25 Jan 2022 16:08:24 +0800</pubDate><description><![CDATA[element-ui弹出框popover点击外部不消失的解决办法

设置trigger为manual;
用点击方法来控制是否关闭。

&lt;el-popover
  v-model="isShow"
  placement="right"
  width="400"
  trigger="manual"&gt;
  234
  &lt;el-button slot="reference" @click.native="onShow"&gt;click 激活&lt;/el-button&gt;
&lt;/e]]></description><category></category></item><item><title><![CDATA[js中blob转string、string转blob、typeArray转blob、blob转TypeArray]]></title><link>https://blog.youkuaiyun.com/high32/article/details/122257629</link><guid>https://blog.youkuaiyun.com/high32/article/details/122257629</guid><author>high32</author><pubDate>Fri, 31 Dec 2021 15:46:04 +0800</pubDate><description><![CDATA[这里写目录标题将String字符串转换成Blob对象将TypeArray  转换成 Blob 对象ArrayBuffer转Blob将Blob对象转换成String字符串将Blob对象转换成ArrayBuffer
将String字符串转换成Blob对象
//将字符串 转换成 Blob 对象
var blob = new Blob(["Hello World!"], {
    type: 'text/plain'
});
console.info(blob);
console.info(blob.slice(]]></description><category></category></item><item><title><![CDATA[手写一个electron本地音乐播放器]]></title><link>https://blog.youkuaiyun.com/high32/article/details/121482080</link><guid>https://blog.youkuaiyun.com/high32/article/details/121482080</guid><author>high32</author><pubDate>Mon, 22 Nov 2021 22:15:58 +0800</pubDate><description><![CDATA[myaMusic


一个基于 electron-vue 开发的音乐播放器


使用：vue+element+electron


源码地址： maya1900/myamusic: a simple local music player. (github.com)

安装
npm i

运行
npm start

打包
npm run starting

说明

1.添加单/多个本地音乐，添加文件目录，删除delete；
2.播放歌曲，歌词同步(歌词lrc文件同名，放和歌曲同级目录下)，最小化到托盘；
3.]]></description><category></category></item><item><title><![CDATA[dagre/dagre-d3绘制流程图]]></title><link>https://blog.youkuaiyun.com/high32/article/details/117576201</link><guid>https://blog.youkuaiyun.com/high32/article/details/117576201</guid><author>high32</author><pubDate>Sat, 05 Jun 2021 00:46:55 +0800</pubDate><description><![CDATA[dagre/dagre-d3绘制流程图概念步骤知识点配置项gragh 配置node 配置edge 配置交互拖拽缩放鼠标悬停 tootip参考
概念
dagre 是专注于有向图布局的 javascript 库，由于 dagre 仅仅专注于图形布局 #F44336，需要使用其他方案根据 dagre 的布局信息来实际渲染图形，而 dagre-d3 就是 dagre 基于 D3 的渲染方案。
dagre: https://github.com/dagrejs/dagre
dagre-d3: https://gith]]></description><category></category></item><item><title><![CDATA[实现codemirror的自定义提示的功能]]></title><link>https://blog.youkuaiyun.com/high32/article/details/117049672</link><guid>https://blog.youkuaiyun.com/high32/article/details/117049672</guid><author>high32</author><pubDate>Thu, 20 May 2021 00:07:14 +0800</pubDate><description><![CDATA[实现codemirror的自定义提示的功能效果图前言代码参考
效果图

前言
原本是使用 codemirror 的方法来实现，结果在得到行内容的时候问题不能第一次得到括号/花括号这样的符号，需要打两遍，而且实际项目中还需要做遍历操作，需要的参数过多。
于是使用了 vue-codemirror，基于它封装的 vue 插件，而且功能使用上也比较方便，遂使用。
代码
&lt;template&gt;
  &lt;div class="main"&gt;
    &lt;codemirror
      ref="]]></description><category></category></item><item><title><![CDATA[vue调试的三种方法]]></title><link>https://blog.youkuaiyun.com/high32/article/details/116570570</link><guid>https://blog.youkuaiyun.com/high32/article/details/116570570</guid><author>high32</author><pubDate>Sun, 09 May 2021 21:08:10 +0800</pubDate><description><![CDATA[vue调试的三种方法一、console.log二、debugger方法三、vscode里断点调试
一、console.log
这个开始学就会，不演示了。重要的是需要养成这样的能力，代码出了问题，光看是看不出来问题的。
二、debugger方法

vscode安装插件，debugger for chrome;

在代码需要打断点的位置，写上debugger(如果安装eslint可能报错，这时鼠标移到代码出现小灯泡，点击选第一项忽略即可);

npm run serve启动，到了断点位置浏览器会停下来;

在浏]]></description><category></category></item><item><title><![CDATA[js求最大值和最小值的四种方法]]></title><link>https://blog.youkuaiyun.com/high32/article/details/115774001</link><guid>https://blog.youkuaiyun.com/high32/article/details/115774001</guid><author>high32</author><pubDate>Fri, 16 Apr 2021 23:38:32 +0800</pubDate><description><![CDATA[js求最大值和最小值的四种方法方法一：sort排序方法二：假设法方法三：apply方法方法四：eval方法
方法一：sort排序
即使用sort方法先对数组进行排序。
	function MaxAndMin (arr) {
		arr.sort((a, b) =&gt; {return a - b})
		return [arr[0], arr[arr.length - 1]]
	}
	let arr = [8,5,4,7,1,3,3,6]
	console.log(MaxAndMin(arr))  // ]]></description><category></category></item><item><title><![CDATA[开发依赖vs生产依赖]]></title><link>https://blog.youkuaiyun.com/high32/article/details/115319813</link><guid>https://blog.youkuaiyun.com/high32/article/details/115319813</guid><author>high32</author><pubDate>Tue, 30 Mar 2021 10:53:29 +0800</pubDate><description><![CDATA[开发依赖vs生产依赖前言有何区别开发依赖生产依赖
前言
一直对开发依赖与生产依赖存在一些误区，这里学到了记录一下。
有何区别
如果是做普通前端项目，package.json里面的依赖包作为开发依赖和生产依赖基本没啥区别；如果项目是做npm包或者node服务的，会有些许差别。
开发依赖
npm -i xxx --save--dev

执行操作后，pakage.json里devdependencies里保存相应依赖包，这些包只在做项目的时候会使用到，在项目打包上线后不依赖于这些包项目依然可以正常运行。比如：gu]]></description><category></category></item><item><title><![CDATA[uni-app报错之解决二法]]></title><link>https://blog.youkuaiyun.com/high32/article/details/114907126</link><guid>https://blog.youkuaiyun.com/high32/article/details/114907126</guid><author>high32</author><pubDate>Tue, 16 Mar 2021 23:41:54 +0800</pubDate><description><![CDATA[初见uni-app报错之解决二法报错一：使用HbuiderX运行到小程序出错报错二：启动成功微信开发者工具，但调试器上白屏，并且报错。
报错一：使用HbuiderX运行到小程序出错
原因：拉取微信开发者工具失败。

解决：打开微信开发者工具–设置–通用设置–安全–打开端口即可。

报错二：启动成功微信开发者工具，但调试器上白屏，并且报错。
原因：Hbuider上没有配置appid。

解决：

Hbuider上登录上账号，基础配置上获取到uniapp上的appid(没验证的点它的跳转链接去绑定手机)；
在微]]></description><category></category></item><item><title><![CDATA[slot插槽二三事]]></title><link>https://blog.youkuaiyun.com/high32/article/details/114523122</link><guid>https://blog.youkuaiyun.com/high32/article/details/114523122</guid><author>high32</author><pubDate>Mon, 08 Mar 2021 11:40:28 +0800</pubDate><description><![CDATA[slot插槽二三事前言一、slot是什么？二、插槽分类1.匿名插槽(1)当父组件标签内不写内容时：(2)当父组件标签内填写内容时：2.具名插槽(1) 父组件内标签不指定替换内容：(2)父组件内容指定替换内容：3.作用域插槽4.动态插槽参考

前言
复习了下vue，感觉slot这块有点忘了，又捡起再复习了一下，又学到了一些新知识，在此记录。

一、slot是什么？
官方的解释是：

Vue 实现了一套内容分发的 API，这套 API 的设计灵感源自 Web Components 规范草案，将 slot 元素作]]></description><category></category></item><item><title><![CDATA[实操redux]]></title><link>https://blog.youkuaiyun.com/high32/article/details/114377032</link><guid>https://blog.youkuaiyun.com/high32/article/details/114377032</guid><author>high32</author><pubDate>Thu, 04 Mar 2021 22:56:55 +0800</pubDate><description><![CDATA[实操redux一、引子二、redux版三、react-redux版四、两个组件之间数据共享五、可优化的地方六、完整代码
一、引子
今天利用一个小案例完成对redux的知识回顾。首先看效果（完整代码见文末）：

完成功能：
1.利用redux完成加1、减1、加任意值、异步加1
2.实现两个组件间的数据共享
3.一些代码优化
二、redux版
首先建立src文件夹如下结构（示例）：

创建store：
//store/index.js
// 1.引入createStore
//applyMiddleware在异]]></description><category></category></item><item><title><![CDATA[js高阶函数]]></title><link>https://blog.youkuaiyun.com/high32/article/details/114000979</link><guid>https://blog.youkuaiyun.com/high32/article/details/114000979</guid><author>high32</author><pubDate>Tue, 23 Feb 2021 21:17:38 +0800</pubDate><description><![CDATA[js高阶函数前言一、什么是函数式编程？1.函数是“一等公民”2.纯函数二、高阶函数1.概念2.map3.filter4.reduce5.sort三、函数柯里化

前言
学习react，本来只想复习下数组的map、filter、reduce方法，结果又找出了函数式编程、高阶函数、函数柯里化…这里单纯记录一下。

一、什么是函数式编程？

函数式编程不是用函数来编程，也不是传统的面向过程编程。主旨在于将复杂的函数符合成简单的函数（计算理论，或者递归论，或者拉姆达演算）。运算过程尽量写成一系列嵌套的函数调用。

]]></description><category></category></item><item><title><![CDATA[js复习：几个例子弄懂解构赋值]]></title><link>https://blog.youkuaiyun.com/high32/article/details/113828595</link><guid>https://blog.youkuaiyun.com/high32/article/details/113828595</guid><author>high32</author><pubDate>Tue, 16 Feb 2021 22:13:20 +0800</pubDate><description><![CDATA[js复习：几个例子弄懂解构赋值前言一、概念二、例子1.声明时解构2.剩余参数解构3. 默认值4.解构对象5.解构时的重命名6.嵌套解构7.遍历对象值时的解构8.函数参数解构9.变量交换10.使用正则时的解构11.es6计算属性的解构参考

前言
复习啊复习，js的基础都快忘完了，时不时捡起来再看看。

一、概念

解构赋值语法是一种 Javascript 表达式。通过解构赋值, 可以将属性/值从对象/数组中取出,赋值给其他变量。

二、例子
1.声明时解构
	const arr = ['haha','xix]]></description><category></category></item></channel></rss>