<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SeaSunExpect的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SeaSunExpect</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SeaSunExpect]]></copyright><item><title><![CDATA[mac 配置ssh允许SourceTree通过秘钥访问远程仓库]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/114890095</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/114890095</guid><author>SeaSunExpect</author><pubDate>Tue, 16 Mar 2021 17:27:27 +0800</pubDate><description><![CDATA[MAC 配置ssh允许SourceTree通过秘钥访问远程仓库
按如下命令来生成 sshkey:
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"

按照提示完成三次回车（设置密码为空），即可生成 ssh key；
添加后，在终端（Terminal）中输入：
ssh -T git@gitee.com

若返回 ：
Hi XXX! You’ve successfully authenticated, but Gitee.com does not provide shell acce]]></description><category></category></item><item><title><![CDATA[同时安装Vue CLI2和Vue CLI3的方法]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/114791903</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/114791903</guid><author>SeaSunExpect</author><pubDate>Sun, 14 Mar 2021 16:16:59 +0800</pubDate><description><![CDATA[0. 前言
如果你想体验Vue CLI3的简洁清爽，又偶尔需要使用Vue CLI2，那这篇帖子就是你需要的。
配置方法改进于 同一台电脑 实现 vue-cli2和vue-cli3同时并存
原方法使用了直接修改文件名的方式，不够美观，破坏式的，改进后为透传调用。

修改：2019-08-14
原方法使用了直接修改文件名的方式，不够美观，破坏式的。如果需要更新cli版本，必须再次重命名./bin下的脚本。
改进后为透传调用，直接更新即可

1. 准备阶段

本方法的核心是使用非全局的方式安装Vue CLI
虽然]]></description><category></category></item><item><title><![CDATA[多个Promise顺序执行的解决思路]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/113991989</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/113991989</guid><author>SeaSunExpect</author><pubDate>Tue, 23 Feb 2021 15:54:17 +0800</pubDate><description><![CDATA[问题：多个延时器顺序执行，依次打印
function a() {
	setTimeout(() =&gt; {
		console.log(1)
	}, 200)
}

function b() {
	setTimeout(() =&gt; {
		console.log(2)
	}, 10)
}

function c() {
	setTimeout(() =&gt; {
		console.log(3)
	}, 30)
}

// a()
// b()
// c()
// console.log(4)
]]></description><category></category></item><item><title><![CDATA[功能效果之水印]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/106570017</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/106570017</guid><author>SeaSunExpect</author><pubDate>Fri, 05 Jun 2020 14:34:22 +0800</pubDate><description><![CDATA[vue项目添加水印
下载文件watermark.js
1. 在App.vue中，导入改文件
import Watermark from '@/static/js/watermark.js'

2. 监听路由变化
watch: {
  $route (to, from) {
    if (to.path === '/login') {
      Watermark.set('')
    } else {
      if (sessionStorage.token === undefined) {
  ]]></description><category></category></item><item><title><![CDATA[JS全排列的7种算法总结（不重复元素）]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102746893</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102746893</guid><author>SeaSunExpect</author><pubDate>Fri, 25 Oct 2019 17:29:43 +0800</pubDate><description><![CDATA[文章目录算法一：循环，一组排列需要几个元素就用几个for（比较笨拙的方法）算法二：交换算法（递归）算法三：链接算法（递归）算法四：回溯算法（递归）算法五：回溯算法（非递归）算法六：排序算法（非递归）算法七：求模算法（非递归）

全排列是一种时间复杂度为：O(n!)的算法。所有算法均使用JavaScript编写，可直接运行。

算法一：循环，一组排列需要几个元素就用几个for（比较笨拙的方法）
&l...]]></description><category></category></item><item><title><![CDATA[7种常用函数图象及4种函数图象变换规则]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102715927</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102715927</guid><author>SeaSunExpect</author><pubDate>Thu, 24 Oct 2019 09:37:23 +0800</pubDate><description><![CDATA[函数的图象是数学，对于研究函数的单调性、奇偶性以及最值（值域）、零点有举足轻重的作用，但是很多同学看到眼花缭乱的函数解析式，就已经晕头转向了，再去画图象，不是这里错，就是那里有问题，图象也画的乱七八糟，更甭提利用图象去解题了！但掌握以下几步，画函数图象将轻而易举：
1、首先，观察是否是基本初等函数（也就是我们在课本中学过的那几类函数），如果是，那就可以直接画；2、如果...]]></description><category></category></item><item><title><![CDATA[使用async/await 总结]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102602741</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102602741</guid><author>SeaSunExpect</author><pubDate>Thu, 17 Oct 2019 11:31:39 +0800</pubDate><description><![CDATA[文章目录async/await异步与同步async/await基础使用async/await搭配then使用async/await作用于对象async/await串行与并行并行的方式async/await 循环并行处理
async/await
异步与同步


同步：同一线程之中，顺序完成不同的操作，是一种阻塞模式；后一个请求操作需要等待前一个操作完成之后，才能发出。


异步：需要开启不同的线程，...]]></description><category></category></item><item><title><![CDATA[精确判断数据类型的方法]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102481266</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102481266</guid><author>SeaSunExpect</author><pubDate>Thu, 10 Oct 2019 14:13:03 +0800</pubDate><description><![CDATA[数据类型的精确判断
var type = function (o){
    var s = Object.prototype.toString.call(o);
    return s.match(/\[object (.*?)\]/)[1].toLowerCase();
};
console.log(threeSum(numsAry))


]]></description><category></category></item><item><title><![CDATA[双路由器网络配置]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102463116</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102463116</guid><author>SeaSunExpect</author><pubDate>Wed, 09 Oct 2019 17:22:29 +0800</pubDate><description><![CDATA[场景
庭院式小二楼或者大面积楼层，网络WiFi配置，保证无线网络的全覆盖,无线网络无缝切换；
闲置路由器动手改造配置成交换器，或者WiFi放大器。动手之前，需要搞清楚中继和桥接的区别
概念区别


中继（Repeater）和桥接（Bridge）都是通过无线的方式与一台可以上网的无线路由器建立连接，用来放大可以用来可以上网的无线路由器上的无线信号。但是区别在于，放大前后的无线信号名称(SSID)是否...]]></description><category></category></item><item><title><![CDATA[判断浏览器是否为IE及Edge]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102460510</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102460510</guid><author>SeaSunExpect</author><pubDate>Wed, 09 Oct 2019 14:39:44 +0800</pubDate><description><![CDATA[检测浏览器是否为IE
function isIE(){
	if(!!window.ActiveXObject || "ActiveXObject" in window || navigator.userAgent.indexOf("Edge") &gt; -1)
		return true;
	else
		return false;
}
alert(isIE())


...]]></description><category></category></item><item><title><![CDATA[网页中链接实现打印功能]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102460315</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/102460315</guid><author>SeaSunExpect</author><pubDate>Wed, 09 Oct 2019 14:35:01 +0800</pubDate><description><![CDATA[链接实现网页打印功能
&lt;a href="javascript:if(window.print)window.print()" target='_self' title='打印'&gt;打印&lt;/a&gt;


]]></description><category></category></item><item><title><![CDATA[React-Native项目之环境配置及调试中的bug]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/100285847</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/100285847</guid><author>SeaSunExpect</author><pubDate>Mon, 02 Sep 2019 15:09:25 +0800</pubDate><description><![CDATA[React-Native环境配置

主要针对Windows系统，以及Android设备调试

准备软件

NodeJs安装包（Node版本要求：&gt;=8.3）  node下载
Python安装包（版本要求：必须为Python2）  Python2下载
JDK软件（版本要求：&gt;=8）  JDK下载
Android Studio安装包（默认为最新）  Android Studio下载
夜神安...]]></description><category></category></item><item><title><![CDATA[react系列之react-redux]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/98735107</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/98735107</guid><author>SeaSunExpect</author><pubDate>Wed, 07 Aug 2019 11:33:02 +0800</pubDate><description><![CDATA[目录结构
| src
    -| index.js
    -| App.js
    -| store.js
    -| Todolist.js
    -| reducer.js
    -| actionTypes.js

安装redux、react-redux


在App.js中引入react-redux中的Provider
javascript &lt;Provider store...]]></description><category></category></item><item><title><![CDATA[react系列之redux]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/98734992</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/98734992</guid><author>SeaSunExpect</author><pubDate>Wed, 07 Aug 2019 11:32:05 +0800</pubDate><description><![CDATA[目录结构
| src
    -| index.js
    -| App.js
    -| store.js
    -| reducer.js
    -| actionCreator.js
    -| actionTypes.js
    -| Ui.js

安装redux


在store.js中引入redux中的createStore、combineReducers

createS...]]></description><category></category></item><item><title><![CDATA[react系列之flux]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/98734874</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/98734874</guid><author>SeaSunExpect</author><pubDate>Wed, 07 Aug 2019 11:30:57 +0800</pubDate><description><![CDATA[目录结构
| src
    -| index.js
    -| app.js
    -| dispatcher.js
    -| store.js

安装flux

在dispatcher.js引入flux中的{Dispatcher}
实例化Dispatcher,并注册

const dispatcher = new Dispatcher()
dispatcher.refister(cal...]]></description><category></category></item><item><title><![CDATA[数组复制的多种方法对比]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/98312816</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/98312816</guid><author>SeaSunExpect</author><pubDate>Sat, 03 Aug 2019 11:32:08 +0800</pubDate><description><![CDATA[实现数组复制的方法
在日常的开发中，经常遇到数组复制的问题，考虑使用哪种方式更方便使用情景。
为方便日后自己使用，小小总结一下。
数组的深、浅拷贝的理解

浅拷贝：指向被复制的内存地址（对象引用 | 指针），一般存放于内存的堆区中。如果被复制的对象地址发生变化，浅拷贝的对象也会发生变化。值相同，指向地址相同。
深拷贝：首先在内存中申请新的堆区，将被复制对象的所有属性复制到新的堆区中，不会受到原对象...]]></description><category></category></item><item><title><![CDATA[网页特效之可变颜色的字体]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/91491372</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/91491372</guid><author>SeaSunExpect</author><pubDate>Wed, 12 Jun 2019 11:01:19 +0800</pubDate><description><![CDATA[先上效果图

html代码
&lt;div class="area-xf"&gt;
	&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid animi aperiam assumenda autem beatae, cum dicta eius eveniet, impedit iure magni m...]]></description><category></category></item><item><title><![CDATA[网站建设中canvas效果------会跳舞的机器人]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/90755686</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/90755686</guid><author>SeaSunExpect</author><pubDate>Mon, 03 Jun 2019 17:26:46 +0800</pubDate><description><![CDATA[效果预览

创建robot类


机器人构造函数


constructor(color, light, size, x, y, struct) {
  this.x = x;
  this.points = [];
  this.links = [];
  this.frame = 0;
  this.dir = 1;
  this.size = size;
  this.color = Mat...]]></description><category></category></item><item><title><![CDATA[webpack适用场景及构建项目]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/90290240</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/90290240</guid><author>SeaSunExpect</author><pubDate>Fri, 17 May 2019 16:05:59 +0800</pubDate><description><![CDATA[webpack引出的背景
在简单的demo中使用npm的依赖包文件，通过ES6中的import是无法直接引入对应的npm中的依赖（目前是不支持的，后续有可能更新后，支持）。
我们知道在node模块中，采用的是CommonJS规范，使用require来引入文件。这里可能有人会问为什么还要使用import来引入对应的npm中的依赖呢？
为了明白这里为何非要使用import，首先需要明白import和r...]]></description><category></category></item><item><title><![CDATA[微信小程序之动画篇]]></title><link>https://blog.youkuaiyun.com/SeaSunExpect/article/details/90265963</link><guid>https://blog.youkuaiyun.com/SeaSunExpect/article/details/90265963</guid><author>SeaSunExpect</author><pubDate>Thu, 16 May 2019 16:42:29 +0800</pubDate><description><![CDATA[小程序动画两种实现方式利用transition和animation两种方式实现相同的淡入淡出效果transition动画实现效果具体内容animation动画实现效果具体内容小程序中transition和animation实现动画的异同
利用transition和animation两种方式实现相同的淡入淡出效果
主要是实现点击展示按钮，按钮消失，菜单有底部缓缓滑入界面；点击菜单中关闭按钮，展示按钮...]]></description><category></category></item></channel></rss>