<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Cassie's blog]]></title><description><![CDATA[失败了是经验，成功了是精彩]]></description><link>https://blog.csdn.net/viewyu12345</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; viewyu12345]]></copyright><item><title><![CDATA[[[scopes]]结合实际分析]]></title><link>https://blog.csdn.net/viewyu12345/article/details/108703891</link><guid>https://blog.csdn.net/viewyu12345/article/details/108703891</guid><author>viewyu12345</author><pubDate>Mon, 21 Sep 2020 11:20:47 +0800</pubDate><description><![CDATA[上一篇文章说到作用域链，其实作用域链的本质是一个指向变量对象的指针列表，它只引用但不实际包含变量对象。到底是怎样运作得呢？

[[scopes]]分析

那么自己就在思考，上面说的都是理论知识，内部访问外部，在代码上是不是有上面地方存储了，好奇的我打印了下一个匿名函数如下：



可以看到，函数里面有个[[Scopes]]，是一个数组对象，现在里面有个全局对象。这就是本章内容的主角了。

scopes里面会存在几种类型：Global，Closure，Script，Block，Closure后面那个就是对应的]]></description><category></category></item><item><title><![CDATA[package.json与package-lock.json]]></title><link>https://blog.csdn.net/viewyu12345/article/details/106836942</link><guid>https://blog.csdn.net/viewyu12345/article/details/106836942</guid><author>viewyu12345</author><pubDate>Thu, 18 Jun 2020 21:48:02 +0800</pubDate><description><![CDATA[任何事情都不是凭空发生，特别在是技术这件事情上；任何事情都是由最最基础发展而来的，只要追本溯源就能解决问题。


问题的产生

起因：项目走自动化构建不成功，构建失败说一个包连接github失败，但是我在package.json里面根本没找到这个包，在代码里面也没看到（神奇脸.jpg）

猜测：可能是哪个包关联了吧。

结论：确实在package-lock.json里面发现了这个包，是项目中另一个包引入的问题，看到项目并没有用，就删除了，自动化是成功解决了。问题来了，为什么会出现这种情况，package..]]></description><category></category></item><item><title><![CDATA[vue之监听本地存储]]></title><link>https://blog.csdn.net/viewyu12345/article/details/93052180</link><guid>https://blog.csdn.net/viewyu12345/article/details/93052180</guid><author>viewyu12345</author><pubDate>Thu, 20 Jun 2019 16:28:53 +0800</pubDate><description><![CDATA[问题分析和解决

问题：在做项目的时候，遇到需要使用监听本地存储的需求，于是进行了操作：


window.addEventListener('storage', function (e) {
    console.log(e);
});

如果在一个页面触发缓存变化存储一个route，另一个页面监听并且跳转这个route，最后关闭这个跳转过后的页面，回到之前那个页面。这时候发生了：在监听存储的...]]></description><category></category></item><item><title><![CDATA[抓住二月的尾巴]]></title><link>https://blog.csdn.net/viewyu12345/article/details/88045686</link><guid>https://blog.csdn.net/viewyu12345/article/details/88045686</guid><author>viewyu12345</author><pubDate>Thu, 28 Feb 2019 21:55:28 +0800</pubDate><description><![CDATA[一段时间没更新博客了，难道是变懒了，好吧，忙着跑步（其实都是借口，没找到合适的灵感）。

今天是二月的最后一天，这一个月怕是一年之中最安逸的日子吧，放了那么久的假，还只有28天。

今天一如既往下班，不同的是今天下班买了个包子，给家里打了个电话。自己和爸爸总有聊不完的话题，因为他懂我，也愿意倾听我说的话，和我交流，这是从高中就养成的习惯，不用记日子，每周肯定会打电话，有时候不止一次，反正一有时间就...]]></description><category></category></item><item><title><![CDATA[ES6规范的promise]]></title><link>https://blog.csdn.net/viewyu12345/article/details/86540805</link><guid>https://blog.csdn.net/viewyu12345/article/details/86540805</guid><author>viewyu12345</author><pubDate>Fri, 18 Jan 2019 16:40:48 +0800</pubDate><description><![CDATA[差不多一个月没写博客了，现在来开启新的一年第一篇博客。

今天来说说es6规范的promise属性，始终坚信，技术永无止境，无论做什么，都得从底层做起，基础很重要，一步一步，做大做强是吧，不废话了。


在技术领域，永远明白的一个真理，需求推动发展，都是为了更加方便，所谓存在即合理。

学习技术也有几个问题时刻问自己：这个东西是个啥？用来干啥？怎么用？


 promise存在的意义

在java...]]></description><category></category></item><item><title><![CDATA[女生干前端开发个人思考]]></title><link>https://blog.csdn.net/viewyu12345/article/details/84900932</link><guid>https://blog.csdn.net/viewyu12345/article/details/84900932</guid><author>viewyu12345</author><pubDate>Sun, 09 Dec 2018 01:01:52 +0800</pubDate><description><![CDATA[趁着出差加上明天周末，自己也不是很着急，写下自己一直在思考的问题。

大学的自己，对于干技术，自己一直是排斥的，因为只要一想到干技术，自己脑海中浮现的就是改不完的bug，然后和一群大脑爷们儿蓬头垢面的上班，饮食不规律等等。自己想要的生活就是要美美哒，程序员的生活也觉得很枯燥，就一直很排斥，觉得女生干技术，怎么也没有男生厉害的（虽然自己一直喜欢数学，和男生经常一起交流问题），但是总觉得干不过他们。
...]]></description><category></category></item><item><title><![CDATA[vue中的$props、$attrs和$listeners研究]]></title><link>https://blog.csdn.net/viewyu12345/article/details/84031295</link><guid>https://blog.csdn.net/viewyu12345/article/details/84031295</guid><author>viewyu12345</author><pubDate>Tue, 13 Nov 2018 17:03:30 +0800</pubDate><description><![CDATA[接触一个东西，在技术上我们的一般思路是：这是个啥？怎么使用？有何存在意义？

本质探索


$props：当前组件接收到的 props 对象。Vue 实例代理了对其 props 对象属性的访问。

$attrs：包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外)。

$listeners：包含了父作用域中的 (不含 .native 修饰器的) v...]]></description><category></category></item><item><title><![CDATA[“魔鬼”eval]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83758138</link><guid>https://blog.csdn.net/viewyu12345/article/details/83758138</guid><author>viewyu12345</author><pubDate>Mon, 05 Nov 2018 22:56:25 +0800</pubDate><description><![CDATA[初识eval()

eval()函数在很多语言中都有，这仅仅讨论在JavaScript中的情况。由于eval()函数可以将任意字符串当做一个JavaScript代码来执行，所以可谓是特别强大了，经常的使用情况就是，函数名变化，来调用函数之类的。

但是为什么说是魔鬼：


如果你用 eval() 运行的字符串代码被恶意方（不怀好意的人）操控修改，您最终可能会在您的网页/扩展程序的权限下，在用户计算...]]></description><category></category></item><item><title><![CDATA[vuex中的表单处理]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83590942</link><guid>https://blog.csdn.net/viewyu12345/article/details/83590942</guid><author>viewyu12345</author><pubDate>Wed, 31 Oct 2018 21:45:45 +0800</pubDate><description><![CDATA[首先简单的介绍一下vuex。

vuex的核心就是store仓库，里面管理着我们的状态， 我们在编写vue程序的时候，状态管理很重要。举个例子：比如我们都知道，加载有个加载的圈在那儿转，等到数据请求完成了，也就消失了，这个东西的写法我们就可以用到状态管理。首先状态值为0，向后端发一个请求，就状态值加1，返回一个请求就状态字减1，等到状态为0的时候，就消失这个加载圈。记住核心是状态，其它的mutat...]]></description><category></category></item><item><title><![CDATA[5个技巧写更好的JavaScript条件语句]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83514074</link><guid>https://blog.csdn.net/viewyu12345/article/details/83514074</guid><author>viewyu12345</author><pubDate>Mon, 29 Oct 2018 23:26:35 +0800</pubDate><description><![CDATA[当我们在使用JavaScript，条件语句少不了的，下面给出5个技巧让我们写出更好的条件语句。

1、对于多个条件使用Array.includes方法

下面来看一个例子。


// 条件
function test(fruit) {
  if (fruit == 'apple' || fruit == 'strawberry') {
    console.log('red');
  }
}

...]]></description><category></category></item><item><title><![CDATA[说说弹性布局flexbox]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83346236</link><guid>https://blog.csdn.net/viewyu12345/article/details/83346236</guid><author>viewyu12345</author><pubDate>Wed, 24 Oct 2018 23:47:43 +0800</pubDate><description><![CDATA[今天是一个特别的节日哈，#1024程序员节#，内部嗨皮一下就好了。但是节日是一个仪式，学习是永不止步的。今天聊聊弹性布局，或许都听厌烦了，自己很早之前也有了解，但是也只是皮毛，今天乘着节日记录一下吧。

自己之前第一眼瞧上flexbox（弹性布局）也就是看上了它的垂直居中，这在我们平时的float之类的布局中是个头疼的东西。最后发现flexbox魅力无穷。


注意：设为 Flex 布局以后，子元...]]></description><category></category></item><item><title><![CDATA[优秀到无法忽略]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83305548</link><guid>https://blog.csdn.net/viewyu12345/article/details/83305548</guid><author>viewyu12345</author><pubDate>Tue, 23 Oct 2018 14:02:00 +0800</pubDate><description><![CDATA[最近美国出版的一本新书《优秀到无法忽略》，《So Good They Can't Ignore You》，读来深有共鸣，这也是自己在自己行业一直在思考的问题。到现在，虽然没有什么成就，但是相比于自己当初，也感觉到了进步，从中找到了自己的乐趣所在。

刚刚毕业，都想着改变世界，年轻就应该出去闯荡，就应该到处去看看。选择行业我们也一定要选择跟随自己的内心去，要选择喜欢的，也就是要有激情，这也是越来越多...]]></description><category></category></item><item><title><![CDATA[javascript——事件对比分析]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83211847</link><guid>https://blog.csdn.net/viewyu12345/article/details/83211847</guid><author>viewyu12345</author><pubDate>Sat, 20 Oct 2018 11:38:10 +0800</pubDate><description><![CDATA[事件流

事件流分为冒泡和捕获。


冒泡：即事件开始时由最具体的元素（文档中嵌套层次最深的那个节点）接收，然后逐级向上传播到较为不具体的节点（文档）。IE事件流就叫做事件冒泡



捕获：事件捕获的思想是不太具体的节点应该更早接收到事件，而最具体的节点应该最后接收到事件。


&quot;DOM2级事件&quot;规定的事件流包括三个阶段：事件捕获阶段、处于目标阶段和事件冒泡阶段。

事件有哪些，之间的区别是什么呢...]]></description><category></category></item><item><title><![CDATA[vue项目之webpack打包静态资源路径不准确]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83187815</link><guid>https://blog.csdn.net/viewyu12345/article/details/83187815</guid><author>viewyu12345</author><pubDate>Fri, 19 Oct 2018 21:24:43 +0800</pubDate><description><![CDATA[文章有点长，希望能够阅读下去，有所帮助。

问题

将打包好的项目部署到服务器，发现报错说图片找不到。
	静态资源如js访问不到
分析并且解决问题


明确一点的就是，看到报错404，找不到静态资源，很明显，路径错误了。 


静态资源找不到如js文件


资源打包路径有误，打包后的资源使用了绝对根目录路径，因此将项目部署到特定目录下，其引入的资源路径无法被正确解析。


解决：

找到confi...]]></description><category></category></item><item><title><![CDATA[vue中使用rem布局解析+大屏自适应]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83153718</link><guid>https://blog.csdn.net/viewyu12345/article/details/83153718</guid><author>viewyu12345</author><pubDate>Thu, 18 Oct 2018 22:57:14 +0800</pubDate><description><![CDATA[公司内部一直有大屏的需求，也一直再做，中途也踩了一些坑，但是没有认真的来总结下。

首先项目中，做过移动端的适配，也有现在的大屏需求，中间都离不开不一个单位rem，自适应看起来就很麻烦，不过无惧困难，困难才会看到你说，哟，厉害了，我闪~，下面慢慢聊来。

浅析rem

首先rem是css单位，相比于px固定的像素单位，rem更加的灵活，还有现在也比较好的vm。如果从未了解过，可以先过过眼

rem...]]></description><category></category></item><item><title><![CDATA[说说table下面定位层级的问题]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83115385</link><guid>https://blog.csdn.net/viewyu12345/article/details/83115385</guid><author>viewyu12345</author><pubDate>Wed, 17 Oct 2018 18:45:50 +0800</pubDate><description><![CDATA[先来看看问题是怎样的：



问题描述：就是一个table，我们想实现的效果是hover到比如标题上面，展示一个窗口的姑且，上面展示一些详细的内容。这样的效果，虽然用div列表也可以实现，但是table总有table的优势，我们这里就讲table。

这时候就开动了，很多人的想法，很简单嘛，首先td相对定位，然后里面加个div就是外面那个窗口，绝对定位，完美解决。我只能说，太年轻了我们...

上...]]></description><category></category></item><item><title><![CDATA[Web存储机制——localStorage、sessionStorage]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83094866</link><guid>https://blog.csdn.net/viewyu12345/article/details/83094866</guid><author>viewyu12345</author><pubDate>Tue, 16 Oct 2018 19:08:11 +0800</pubDate><description><![CDATA[上一篇文章分析了cookie，也提到了使用cookie的缺陷。正因如此，出现了HTML5 的 Web Storage。

出现的原因：就是看不惯数据在客户端和服务器端传来传去的，多耗能啊~~~

Web Storage规范包含了两种对象定义：sessionStorage 和 globalStorage，这两个对象在支持的浏览器中都是以windows对象属性的形式存在的。IE8+

与cookie的...]]></description><category></category></item><item><title><![CDATA[谈谈 HTTP Cookie]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83055271</link><guid>https://blog.csdn.net/viewyu12345/article/details/83055271</guid><author>viewyu12345</author><pubDate>Mon, 15 Oct 2018 15:54:04 +0800</pubDate><description><![CDATA[初识cookie

HTTP Cookie通常直接叫做cookie，是小型的纯文本文件


cookie指某些网站为了辨别用户身份而存储在用户本地终端上的数据（维基百科）


服务器对任意HTTP请求发送Set-Cookie HTTP头作为响应的一部分。浏览器会存储这样的会话信息，并在这之后，通过为每个请求添加Cookie HTTP头部将信息发送回服务器（感觉就像是服务器首先给每个人发一个身份卡，...]]></description><category></category></item><item><title><![CDATA[vue之require.context]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83012970</link><guid>https://blog.csdn.net/viewyu12345/article/details/83012970</guid><author>viewyu12345</author><pubDate>Thu, 11 Oct 2018 15:46:46 +0800</pubDate><description><![CDATA[初识require.context


require.context是webpack中，用来创建自己的（模块）上下文


webpack会在构建的时候解析代码中的require.context()

require.context函数接收三个参数：

要搜索的文件夹目录
	是否还应该搜索它的子目录
	以及一个匹配文件的正则表达式

// 语法
require.context(directory,...]]></description><category></category></item><item><title><![CDATA[vue中的provide和inject]]></title><link>https://blog.csdn.net/viewyu12345/article/details/83011618</link><guid>https://blog.csdn.net/viewyu12345/article/details/83011618</guid><author>viewyu12345</author><pubDate>Thu, 11 Oct 2018 14:30:40 +0800</pubDate><description><![CDATA[浅析


provide 和 inject 主要为高阶插件/组件库提供用例。并不推荐直接用于应用程序代码中。


定义说明：这对选项是一起使用的。以允许一个祖先组件向其所有子孙后代注入一个依赖，不论组件层次有多深，并在起上下游关系成立的时间里始终生效。

通俗的说就是：组件得引入层次过多，我们的子孙组件想要获取祖先组件得资源，那么怎么办呢，总不能一直取父级往上吧，而且这样代码结构容易混乱。这个就是...]]></description><category></category></item></channel></rss>