<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sky89299的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sky89299</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sky89299]]></copyright><item><title><![CDATA[Vue3 把实现双向数据绑定的 API Object.defineProperty 换成了 Proxy，出于什么考虑？]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/125155316</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/125155316</guid><author>sky89299</author><pubDate>Mon, 06 Jun 2022 22:26:29 +0800</pubDate><description><![CDATA[1. 两者对比，不难看出，两者的数据劫持都用到了set和get的方法，但是明显可以看出来，Proxy中的数据劫持，并没有用到循环，也就是性能上面的一个提升。
2. Proxy中他劫持的是整个对象，包含了后面新增的一些属性，也能够实现数据的响应式变化，而Object.defineProperty是通过循环遍历的原来对象的键，因此后面加进来的属性，无法实现响应式的变化。...]]></description><category></category></item><item><title><![CDATA[HTTP Cache（缓存）]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/125019510</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/125019510</guid><author>sky89299</author><pubDate>Sat, 28 May 2022 16:11:43 +0800</pubDate><description><![CDATA[当浏览器要请求资源时，会依次查看 Service Worker、memory cache、disk cache，如果有强制缓存且未失效，则使用强制缓存，这时的状态码是 200；强制缓存失效则使用对比缓存，服务端比较后返回 304 或者 200（并携带资源）]]></description><category></category></item><item><title><![CDATA[未给默认值，报错 type check failed for prop “total“. Expected Number with value ‘ ’]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124966770</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124966770</guid><author>sky89299</author><pubDate>Wed, 25 May 2022 15:19:33 +0800</pubDate><description><![CDATA[未给默认值，报错 type check failed for prop "total". Expected Number with value ‘ ’]]></description><category></category></item><item><title><![CDATA[3分钟带你快速了解常用的数组方法]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124809950</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124809950</guid><author>sky89299</author><pubDate>Mon, 16 May 2022 22:48:27 +0800</pubDate><description><![CDATA[3分钟带你快速了解常用的数组方法，
都是些比较常用的数组方法，
掌握这些数组方法，
开发效率，
大幅提高]]></description><category></category></item><item><title><![CDATA[使用git提交代码到仓库报错 failed to push some refs to XXXXXX]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124612701</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124612701</guid><author>sky89299</author><pubDate>Sun, 08 May 2022 10:05:12 +0800</pubDate><description><![CDATA[开发中遇到bug是在正常不过了，而程序也基本都是bug堆里爬出来的。对于程序员来说bug调试也是自己工作的重要组成部分。现把自己在开发过程中已经遇到并解决的bug展示如下。其中有些bug原因进行了简单说明，有些只是知道出现这种问题这样解决，背后原因也是不明觉厉。]]></description><category></category></item><item><title><![CDATA[数组变成树状结构封装]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124578266</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124578266</guid><author>sky89299</author><pubDate>Wed, 04 May 2022 22:18:57 +0800</pubDate><description><![CDATA[对数组变成树状结构一般的应用场景非常的广泛，有后台权限的管理，侧边栏的渲染等，相信大家对数组变成树状结构一定不陌生，大家一般工作中经常会遇到，运气好点的，后台已经帮你处理好了数据，得到的就是帮你处理好了的数据，不好的，那就需要自己手动处理下数据了。今天就和大家详细解析下如何高效的把数组变成树状结构。]]></description><category></category></item><item><title><![CDATA[创建Vue项目把报错Error: command failed: yarn]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124520787</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124520787</guid><author>sky89299</author><pubDate>Sat, 30 Apr 2022 23:14:36 +0800</pubDate><description><![CDATA[开发中遇到bug是在正常不过了，而程序也基本都是bug堆里爬出来的。对于程序员来说bug调试也是自己工作的重要组成部分。现把自己在开发过程中已经遇到并解决的bug展示如下。其中有些bug原因进行了简单说明，有些只是知道出现这种问题这样解决，背后原因也是不明觉厉。]]></description><category></category></item><item><title><![CDATA[跨域深入了解]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124506101</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124506101</guid><author>sky89299</author><pubDate>Fri, 29 Apr 2022 22:57:57 +0800</pubDate><description><![CDATA[跨域深入了解
什么是跨域
跨域指的是浏览器在`一个网站中不能执行其他网站的脚本`，是浏览器的`同源策略`引起的，是浏览器带有的安全限制
同源策略
同源策略指发起ajax请求的时候，==协议、域名、端口号== 必须和服务器一致，三者任意一个不一致都会产生跨域。 

## 为什么要有跨域

> 因为为了浏览器的安全考虑，如果没有跨域，那就会出现浏览器页面套浏览器页面，表面上访问的是支付宝页面，实际是别人做的网页，一样都能够实现功能，但是账号密码却被 实时监控，这样会浏览器造成很大的安全]]></description><category></category></item><item><title><![CDATA[LESS 和 SCSS 的区别]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124484021</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124484021</guid><author>sky89299</author><pubDate>Thu, 28 Apr 2022 21:24:57 +0800</pubDate><description><![CDATA[LESS 和 SCSS 的区别
相同点：
1. LESS和SCSS都是css的预处理器，可以拥有变量，运算，继承，嵌套的功能，使用两者可以使代码更加的便于阅读和维护。
2. 都可以通过自带的插件，转成相对应的css文件。
3. 都可以参数混入，可以传递参数的class，就像函数一样
4. 嵌套的规则相同，都是class嵌套class]]></description><category></category></item><item><title><![CDATA[你居然不知道前端常用的这6种编辑器]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124476264</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124476264</guid><author>sky89299</author><pubDate>Thu, 28 Apr 2022 16:18:15 +0800</pubDate><description><![CDATA[每个软件都有每个软件的特色，代码编辑器只是辅助工具，提高工作的效率，也使得代码的可读性变的更高，不能一味的最求人用的最多的编辑器，选择一款适合自己的编辑器，显得更加的重要。]]></description><category></category></item><item><title><![CDATA[常见的vue安装失败问题]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124436312</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124436312</guid><author>sky89299</author><pubDate>Tue, 26 Apr 2022 20:46:30 +0800</pubDate><description><![CDATA[开发中遇到bug是在正常不过了，而程序也基本都是bug堆里爬出来的。对于程序员来说bug调试也是自己工作的重要组成部分。现把自己在开发过程中已经遇到并解决的bug展示如下。其中有些bug原因进行了简单说明，有些只是知道出现这种问题这样解决，背后原因也是不明觉厉。]]></description><category></category></item><item><title><![CDATA[Vuex带你深度了解]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124373233</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124373233</guid><author>sky89299</author><pubDate>Tue, 26 Apr 2022 01:39:21 +0800</pubDate><description><![CDATA[## Vuex介绍
1. 作用：能够`方便、高效地`实现组件之间的`数据共享
2. Vuex是什么？
   Vuex是vue项目中实现`大范围数据共享`的技术方案
3. 优势：
   1. 数据的`存取一步到位`，不需要层层传递
   2. 数据的`流动`非常清晰
   3. 存储在Vuex中的数据都是`响应式`的

4. 场景：
   1. 适合频繁、大范围的数据共享]]></description><category></category></item><item><title><![CDATA[手把手教你如何使用Vuex]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124287663</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124287663</guid><author>sky89299</author><pubDate>Wed, 20 Apr 2022 01:05:29 +0800</pubDate><description><![CDATA[Vuex介绍
1. 作用：能够`方便、高效地`实现组件之间的`数据共享
2. Vue是什么？
   Vuex是vue项目中实现`大范围数据共享`的技术方案
3. 优势：
   1. 数据的`存取一步到位`，不需要层层传递
   2. 数据的`流动`非常清晰
   3. 存储在Vuex中的数据都是`响应式`的
4. 场景：
   1. 适合频繁、大范围的数据共享]]></description><category></category></item><item><title><![CDATA[深度畅游Vue中的路由]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124240117</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124240117</guid><author>sky89299</author><pubDate>Mon, 18 Apr 2022 00:56:01 +0800</pubDate><description><![CDATA[Vue路由-全局前置守卫
1. 作用：路由跳转之前，会触发一个函数。
2. 场景：检验是否登录，没登录就跳转到登录页，主要用于权限控制。
3. 语法：
   `router.beforeEach((to,form,next)=>{})`（在main.js中）

   参数一（to）：到哪里去

   参数二（from）：从哪里来

   参数三（next）：是否放行，也可以控制跳转的路径

   `next(false)` 拦截,不允许跳转

   `next()`不拦截，跳转

   `next]]></description><category></category></item><item><title><![CDATA[带你浅谈Vue路由]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124222878</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124222878</guid><author>sky89299</author><pubDate>Sat, 16 Apr 2022 23:27:49 +0800</pubDate><description><![CDATA[路由嵌套之后，他的class有两种，可以分为
- 精确匹配
  router-link-exact-active     url中hash值路径。与href属性值完全相同，设置此类名。
- 模糊匹配
  router-link-active  url中hash值   包括href属性值这个路径]]></description><category></category></item><item><title><![CDATA[你真的了解Vue中的路由吗？]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124207471</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124207471</guid><author>sky89299</author><pubDate>Sat, 16 Apr 2022 02:16:05 +0800</pubDate><description><![CDATA[路由
1.  路由含义：路径和组件的映射关系
2.  前端路由作用：实现业务场景切换 ，所有的业务都在一个HTML中实现
1.  优点：
    -   整体`不刷新页面`用户体验更好]]></description><category></category></item><item><title><![CDATA[手把手教你Vue中的插槽使用]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124185796</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124185796</guid><author>sky89299</author><pubDate>Fri, 15 Apr 2022 01:13:18 +0800</pubDate><description><![CDATA[作用域插槽
0.  作用：使用组件时，可以访问组件内部的数据
0.  语法：
    -   子组件插槽slot上绑定一个数据
    -   父组件插槽接收，scope是自定义变量名
    -   父组件会将插槽上绑]]></description><category></category></item><item><title><![CDATA[Vue插槽v-slot的详细教学大全（Ι）]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124162328</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124162328</guid><author>sky89299</author><pubDate>Thu, 14 Apr 2022 02:33:32 +0800</pubDate><description><![CDATA[组件-插槽
 插槽
 作用：通过slot标签，让组件可以接收不同的标签结构显示
语法
  组件内用<slot></slot>占位
  使用组件时<Pannel></Pannel>夹着的地方，传入标签替换slot

## 插槽-默认内容

0.  作用： 如果外面没有传值，可以给个默认显示内容

0.  语法：<slot>放置内容，作为默认显示内容

0.  效果：

    -   不给组件传标签，slot内容原地显示

    -   给组件内传标]]></description><category></category></item><item><title><![CDATA[Vue生命周期详解]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124138731</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124138731</guid><author>sky89299</author><pubDate>Wed, 13 Apr 2022 01:16:49 +0800</pubDate><description><![CDATA[## 生命周期

1. 含义：组件从`创建`到`销毁`的整个过程，这个过程就是声明周期
2. 如何知道组件到了什么阶段？（钩子函数）

## 钩子函数

1. Vue框架`内置`函数，随着组件的声明周期阶段，`自动执行`

2. 作用：在特定的时间点，执行特定的操作
3. 分类4大阶段8个方法

| **阶段** | **方法名**                | **方法名**           |
| -------- | ------------------------- | ----------]]></description><category></category></item><item><title><![CDATA[Vue组件看这篇就够了]]></title><link>https://blog.youkuaiyun.com/sky89299/article/details/124110110</link><guid>https://blog.youkuaiyun.com/sky89299/article/details/124110110</guid><author>sky89299</author><pubDate>Mon, 11 Apr 2022 21:34:25 +0800</pubDate><description><![CDATA[侦听器-watch
1. 作用：可以侦听data/compute属性值的变化，只要修改了就会触发函数执行,可以侦听Vue的变量

2. 语法：watch:{}和data(){并齐同级

3. 事例：

   ```vue
   	watch:{
   		"要侦听的属性名"（newval，oldval）{//newval是现在的值  oldval是之前的值
   
   		}
   	}
   ```

4. ==侦听器深度侦听（侦听对象）==

   事例：

   ```vue
    wat]]></description><category></category></item></channel></rss>