<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[毛毛的博客]]></title><description><![CDATA[学习记录~~]]></description><link>https://blog.youkuaiyun.com/qq_54093765</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_54093765]]></copyright><item><title><![CDATA[2022.6.19 数据结构与算法--哈希表]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/125357073</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/125357073</guid><author>qq_54093765</author><pubDate>Sun, 19 Jun 2022 23:04:38 +0800</pubDate><description><![CDATA[哈希表]]></description><category></category></item><item><title><![CDATA[2022.6.14 数据结构与算法 --集合]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/125286482</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/125286482</guid><author>qq_54093765</author><pubDate>Tue, 14 Jun 2022 22:52:28 +0800</pubDate><description><![CDATA[集合]]></description><category></category></item><item><title><![CDATA[2022.6.12 数据结构与算法 --双向链表]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/125251330</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/125251330</guid><author>qq_54093765</author><pubDate>Mon, 13 Jun 2022 23:24:35 +0800</pubDate><description><![CDATA[双向链表]]></description><category></category></item><item><title><![CDATA[2020.6.11 数据结构与算法--链表]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/125234029</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/125234029</guid><author>qq_54093765</author><pubDate>Sun, 12 Jun 2022 22:35:23 +0800</pubDate><description><![CDATA[链表]]></description><category></category></item><item><title><![CDATA[2022.6.9 数据结构与算法--队列]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/125211939</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/125211939</guid><author>qq_54093765</author><pubDate>Thu, 09 Jun 2022 22:25:08 +0800</pubDate><description><![CDATA[击鼓传花---封装对象---递归思想]]></description><category></category></item><item><title><![CDATA[2022.6.8 数据结构与算法--栈的封装]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/125193705</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/125193705</guid><author>qq_54093765</author><pubDate>Thu, 09 Jun 2022 21:39:36 +0800</pubDate><description><![CDATA[栈的封装-----菜鸡水平]]></description><category></category></item><item><title><![CDATA[2022.3.3 前端性能优化]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/123240768</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/123240768</guid><author>qq_54093765</author><pubDate>Thu, 03 Mar 2022 22:24:04 +0800</pubDate><description><![CDATA[面试中

了解性能优化吗?
输入URL 到看到整个页面经历了什么过程?

工作中

页面加载好慢，不知道是前端问题还是后端问题。
页面交互卡顿，不知道具体哪里出了问题

什么是web性能

打开速度
动画效果
表单提交
列表滚动
页面切换

MDN上的 Web性能定义: Web性能是网站或应用程序的客观度量和可感知的用户体验。
·

减少整体加载时间:减小文件体积、减少HTTP请求、使用预加载
使网站尽快可用:仅加载首屏内容，其它内容根据需要进行懒加载·平滑和交互性:使用CSS替代JS动画、减少UI重绘
感]]></description><category></category></item><item><title><![CDATA[2022.3.2 什么是长任务（时间切片，Web Worker ）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/123233767</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/123233767</guid><author>qq_54093765</author><pubDate>Wed, 02 Mar 2022 17:03:05 +0800</pubDate><description><![CDATA[长任务：
提示：理解长任务
浏览器执行耗时操作超过50ms就是长任务
JavaScript 单线程
同步任务：同步任务指的是，在主线程上排队执行的任务，只有前一个任务执行完毕，才能执行后一个任务。
异步任务：异步任务指的是，不进入主线程，而进入任务队列的任务，只有“任务队列”通知主线程，某个异步任务可以执行了，该任务才会进入主线程执行。
事件循环

所有的同步任务都在主线程上执行，形成了一个执行栈。
主线程外，还存在一个“任务队列”。只要异步任务有了运行结果，就在“任务队列”中放置一个事件
一旦执行栈中的所]]></description><category></category></item><item><title><![CDATA[2021.12.13 scss函数（@mixin）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121901542</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121901542</guid><author>qq_54093765</author><pubDate>Mon, 13 Dec 2021 11:23:44 +0800</pubDate><description><![CDATA[element 源码中的   scss @mixin


]]></description><category></category></item><item><title><![CDATA[2021.12.10 vue axios （15）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121854889</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121854889</guid><author>qq_54093765</author><pubDate>Fri, 10 Dec 2021 14:07:17 +0800</pubDate><description><![CDATA[axios
axios基于promis对ajax的一种封装(就像jq封装实现ajax功能是一样的)
为什么要使用axios?
ajax为mvc服务,但是原生的xml,http已经不符合我们当前的架构了,如果我们还是使用ajax去发送网络请求,那么原生的ajax步骤是比较复杂的,功能不够集中,需要自己封装,那么如果要功能集中的话我们需要使用jQuery,而如果只是单纯的为了使用ajax引入jQuery,这样是不合理的,并且使用webpack打包时,jQuery不享受打包服务,这就很恶心,所以说我们要使用axi]]></description><category></category></item><item><title><![CDATA[2021.12.10 vue vuex（14）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121854406</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121854406</guid><author>qq_54093765</author><pubDate>Fri, 10 Dec 2021 13:46:26 +0800</pubDate><description><![CDATA[什么是Vuex?
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态，并以相应的规则保证状态以一种可预测的方式发生变化
这个状态自管理应用包含以下几个部分：
state，驱动应用的数据源；
view，以声明方式将state 映射到视图；
actions，响应在 view 上的用户输入导致的状态变化。
components: {
  cpn: {
    // state
    data() {
      return { num: 123 }
   ]]></description><category></category></item><item><title><![CDATA[2021.12.10 vue 路由 （13）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121854252</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121854252</guid><author>qq_54093765</author><pubDate>Fri, 10 Dec 2021 13:40:36 +0800</pubDate><description><![CDATA[什么是路由?
这里的路由并不是指我们平时所说的硬件路由器，这里的路由就是SPA（single page application）的路径管理器。vue的单页面应用是基于路由和组件的，路由用于设定访问路径，并将路径和组件映射起来。
传统的页面应用，是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中，则是路径之间的切换，也就是组件的切换。路由模块的本质 就是建立起url和页面之间的映射关系。
至于我们为啥不能用a标签，这是因为用Vue做的都是单页应用（当你的项目准备打包时，运行npm run]]></description><category></category></item><item><title><![CDATA[2021.12.10 vue vue-cil (12)]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121854158</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121854158</guid><author>qq_54093765</author><pubDate>Fri, 10 Dec 2021 13:38:10 +0800</pubDate><description><![CDATA[单文件组件
在很多 Vue 项目中，我们使用Vue.component 来定义全局组件，紧接着挂载到vue实例中。
这种方式在很多中小规模的项目中运作的很好，在这些项目里 JavaScript 只被用来加强特定的视图。但当在更复杂的项目中，或者你的前端完全由 JavaScript 驱动的时候，下面这些缺点将变得非常明显：

全局定义 (Global definitions) 强制要求每个 component 中的命名不得重复
字符串模板 (String templates) 缺乏语法高亮，多行HTML写起来]]></description><category></category></item><item><title><![CDATA[webpack 解决app.js文件过大问题（初始化）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121775176</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121775176</guid><author>qq_54093765</author><pubDate>Tue, 07 Dec 2021 17:54:19 +0800</pubDate><description><![CDATA[引入压缩插件，分别对 Js、Html、Css 进行压缩，Js压缩：UglifyJsPlugin，Html压缩HtmlWebpackPlugin，提取公共资源：CommonsChunkPlugin，提取css并压缩：ExtractTextPlugin  。

]]></description><category></category></item><item><title><![CDATA[2021.11.28 vue render渲染函数的基本约束 （11）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121592160</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121592160</guid><author>qq_54093765</author><pubDate>Sun, 28 Nov 2021 15:26:44 +0800</pubDate><description><![CDATA[render渲染函数的基本约束
VNode必须唯一组件树中的所有VNode 必须是唯一的。这意味着，下面的渲染函数是不合法的：
render(createElement) {
  let my_el = createElement('h1',
    {
      on: {
        click: (e) =&gt; {
          this.msg += 'ok'
        }
      }
    },
    this.msg)
  return createElement(]]></description><category></category></item><item><title><![CDATA[2021.11.28 vue的全局自定义指令（10）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121591989</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121591989</guid><author>qq_54093765</author><pubDate>Sun, 28 Nov 2021 15:15:10 +0800</pubDate><description><![CDATA[vue的全局自定义指令
除了核心功能默认内置的指令(v-model , v-show等等)，Vue 也允许注册自定义指令。
Vue.directive( “eventName”, options)
一个指令定义对象可以提供如下几个钩子函数 (均为可选)：

bind：只调用一次，。在这里可以进行一次性的初始化设置。指令第一次绑定到元素时调用
inserted：被绑定元素插入父节点时调用 (仅保证父节点存在，但不一定已被插入文档中)
update：所在组件的 VNode ( 抽象DOM )更新时调用，但是可能]]></description><category></category></item><item><title><![CDATA[2021.11.28 vue 生命周期 （9）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121591869</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121591869</guid><author>qq_54093765</author><pubDate>Sun, 28 Nov 2021 15:11:13 +0800</pubDate><description><![CDATA[生命周期的基本概念
我们一起回顾一下上节课讲到的,过渡的几个钩子函数:
&lt;body&gt;
  &lt;div id='app'&gt;
    &lt;button @click='show=!show'&gt;btn&lt;/button&gt;
    &lt;transition :css=false @before-enter='fn1' @enter='fn2' @after-enter='fn3'&gt;
      &lt;h1 v-if='show'&gt;嘿嘿嘿&lt;/h1&gt]]></description><category></category></item><item><title><![CDATA[2021.11.28 vue 实例的数据与方法（8）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121591758</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121591758</guid><author>qq_54093765</author><pubDate>Sun, 28 Nov 2021 15:04:47 +0800</pubDate><description><![CDATA[Vue实例的数据与方法
当一个 Vue 实例被创建时，它将data 对象中的所有的属性加入到Vue 的响应式系统中。当这些属性的值发生改变时，视图将会产生“响应”，即匹配更新为新的值。对于值本身的操作咱们之前已经学过了, 现在我们在来学习一下实例属性和方法.
Vue 实例的实例属性与方法。它们都有前缀$，以便与用户定义的属性区分开来
&lt;body&gt;
  &lt;div id='app'&gt;
    {{a}}
    &lt;button @click='fn'&gt;按钮&lt;/butto]]></description><category></category></item><item><title><![CDATA[2021.11.28 vue 过渡和动画（7）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121591567</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121591567</guid><author>qq_54093765</author><pubDate>Sun, 28 Nov 2021 14:56:45 +0800</pubDate><description><![CDATA[vue过渡和动画
过渡:从一种状态过渡到另外一种状态,只有两种状态,一般只需要我们去做两个关键帧,其他的关键帧是由计算机帮我们生成的
动画:多个关键帧,多段,多状态,我们可以去定义自己的关键帧
我们先来回顾一下css3的过渡和动画
动画:
&lt;style&gt;
  @keyframes move {
    0% {
      transform: translateX(100px);
    }

    50% {
      transform: translateX(50px);
    }]]></description><category></category></item><item><title><![CDATA[2021.11.28 vue 作用域插槽（6）]]></title><link>https://blog.youkuaiyun.com/qq_54093765/article/details/121591369</link><guid>https://blog.youkuaiyun.com/qq_54093765/article/details/121591369</guid><author>qq_54093765</author><pubDate>Sun, 28 Nov 2021 14:48:30 +0800</pubDate><description><![CDATA[作用域插槽
有时让插槽内容能够访问子组件中才有的数据是很有用的。
&lt;body&gt;
  &lt;div id='app'&gt;
    &lt;!-- 在根组件内是可以访问到根组件的数据的 --&gt;
    &lt;!-- {{kobe.name}}-&gt;{{kobe.num}} --&gt;
    &lt;!-- &lt;cpn&gt;{{kobe.name}}-&gt;{{kobe.num}}&lt;/cpn&gt; --&gt;
    &lt;!-- 在根组件中不能访问到子组件里]]></description><category></category></item></channel></rss>