<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kramer_light的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kramer_light</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kramer_light]]></copyright><item><title><![CDATA[史上最实用的Docker安装Redis实战（redis docker）]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/132249017</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/132249017</guid><author>kramer_light</author><pubDate>Sat, 12 Aug 2023 15:08:43 +0800</pubDate><description><![CDATA[史上最实用的docker安装redis方案]]></description><category></category></item><item><title><![CDATA[gyp verb check python checking for Python executable “python2“ in the PATH]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/131018532</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/131018532</guid><author>kramer_light</author><pubDate>Sat, 03 Jun 2023 10:50:12 +0800</pubDate><description><![CDATA[gyp verb check python checking for Python executable "python2" in the PATH.
npm ERR! gyp ERR! cwd C:\Users\admin\Documents\WebProject\internship\node_modules\node-sass]]></description><category></category></item><item><title><![CDATA[Module ‘“vue“‘ has no exported member ‘createSSRApp‘]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/130790500</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/130790500</guid><author>kramer_light</author><pubDate>Sun, 21 May 2023 12:54:25 +0800</pubDate><description><![CDATA[Module '"vue"' has no exported member 'createSSRApp'**]]></description><category></category></item><item><title><![CDATA[恢复使用Win32DiskImager后的U盘]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/129600179</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/129600179</guid><author>kramer_light</author><pubDate>Thu, 16 Mar 2023 21:26:12 +0800</pubDate><description><![CDATA[则直接进行下一步 输入format fs=fat32 quick。如果输入active提示：选择的磁盘不是固定 MBR 磁盘。输入creat partition primary。输入format fs=fat32 quick。ACTIVE 命令只能用于固定 MBR 磁盘。select disk 对应磁盘编号。输入diskpart。]]></description><category></category></item><item><title><![CDATA[data.count is nota function]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/118633646</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/118633646</guid><author>kramer_light</author><pubDate>Sat, 10 Jul 2021 12:24:56 +0800</pubDate><description><![CDATA[JS 特性， 变量和函数声明前置，将 data[function] 变成 data[变量]

]]></description><category></category></item><item><title><![CDATA[can`t not read property “0“ of undefined]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/118633608</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/118633608</guid><author>kramer_light</author><pubDate>Sat, 10 Jul 2021 12:20:27 +0800</pubDate><description><![CDATA[对于 undefined 对象，做取值操作就会出现如下错误


]]></description><category></category></item><item><title><![CDATA[GitBash修改本地最近一次commit]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/118633580</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/118633580</guid><author>kramer_light</author><pubDate>Sat, 10 Jul 2021 12:17:58 +0800</pubDate><description><![CDATA[git commit --amend

① 按 c 进入编辑
② 按 Esc 退出编辑
③ 按大写 ZZ 保存退出

]]></description><category></category></item><item><title><![CDATA[babel6升级为babel7]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/118633447</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/118633447</guid><author>kramer_light</author><pubDate>Sat, 10 Jul 2021 12:13:19 +0800</pubDate><description><![CDATA[0、神秘升级代码
npm un babel-core

npm i -D @babel/core

npx babel-upgrade --write --install

1、先看更新前的babel
.babelrc
{
  "presets": [
    ["env", {
      "modules": false,
      "targets": {
        "browsers": ["&gt; 1%", "last 2 versions", "not ie &lt;= 8"]
   ]]></description><category></category></item><item><title><![CDATA[Unknown custom element: ＜component＞ - did you register the component correctly]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/118196698</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/118196698</guid><author>kramer_light</author><pubDate>Thu, 24 Jun 2021 21:25:42 +0800</pubDate><description><![CDATA[使用JSX创建动态组件时，就会出现这个错误：
Unknown custom element: &lt;component&gt; - did you register the component correctly

原因就是我们理所当然的认为在模板语法里动态组件是这样创建的：
&lt;component :is='dev-chart'&gt;&lt;/component&gt;

换成JSX语法就应该是：
&lt;component is={'dev-chart'}&gt;&lt;/component&g]]></description><category></category></item><item><title><![CDATA[vue中使用render、JSX 踩坑记录]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/118072275</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/118072275</guid><author>kramer_light</author><pubDate>Sun, 20 Jun 2021 18:11:56 +0800</pubDate><description><![CDATA[1、templete优先级高于render
当我们在*.vue文件下同时拥有templete和render时，render函数不触发，如下图片.
只会打印出MySider，而不会打印出MySider Render
因此可以删除template标签，那就剩下script，不如直接使用JS文件编码，而不是VUE文件。

当然也有业务代码不容轻易变动，必须使用VUE文件的，这时可以采用函数的办法。如下图。

2、JSX 中 v-on、v-bing、v-on:native 怎么用
v-on 换成 on-*
v-bi]]></description><category></category></item><item><title><![CDATA[Invalid handler for event “input“: got undefined]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/118001333</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/118001333</guid><author>kramer_light</author><pubDate>Thu, 17 Jun 2021 20:31:53 +0800</pubDate><description><![CDATA[使用JSX写elementUI时可能会出现的错误。
错误在于使用了 model绑定表单数据对象。
应该使用 props:{{model: this.form}} 替代
props:{{model: this.form}} 


]]></description><category></category></item><item><title><![CDATA[vue warn getter is missing for computed property ‘watch‘]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/117987785</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/117987785</guid><author>kramer_light</author><pubDate>Thu, 17 Jun 2021 11:40:05 +0800</pubDate><description><![CDATA[watch 和 computed 同级，
却将watch 方法写在了 computed内，导致vue警告。
computed: {
	watch: ....
}

将watch取出，和computed同级即可。

]]></description><category></category></item><item><title><![CDATA[Vue jsx 动态绑定 class]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/117636842</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/117636842</guid><author>kramer_light</author><pubDate>Sun, 06 Jun 2021 21:19:29 +0800</pubDate><description><![CDATA[使用三目运算符替代
&lt;transition name='el-fade-in-linear' appear={true}&gt;
  &lt;span class='e-filter-btn'&gt;
    &lt;i class={[
      'e-filter-tag',
      _this.filterLoads.some((fl) =&gt; fl === colKey)? "el-icon-loading" : '',
      !_this.filterLoads.some((]]></description><category></category></item><item><title><![CDATA[Vue配置安装Sass]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/117628346</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/117628346</guid><author>kramer_light</author><pubDate>Sun, 06 Jun 2021 15:31:26 +0800</pubDate><description><![CDATA[1、首先要安装sass、node-sass、sass-loader
npm install --save-dev sass-loader
npm install --save-dev sass-loader
npm install --save-dev node-sass

2、可能遇到的坑
① 安装node-sass时github仓库下载失败

解决方法：使用淘宝镜像，在gitbass使用如下命令：
SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-]]></description><category></category></item><item><title><![CDATA[iview侧边栏组件化后布局混乱]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/117577040</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/117577040</guid><author>kramer_light</author><pubDate>Sat, 05 Jun 2021 01:23:57 +0800</pubDate><description><![CDATA[当我将侧边栏组件化后，出现如下问题：

content部分被排布到下面，须知layout布局采用的是flex布局。因此在代码上如此实现：
&lt;template&gt;
  &lt;div id="layout"&gt;
    &lt;Layout&gt;
      &lt;MyHeader&gt;&lt;/MyHeader&gt;
      &lt;div style="display:flex;"&gt;
        &lt;MySider&gt;&lt;/MySider&gt;
     ]]></description><category></category></item><item><title><![CDATA[react-router-dom基础路由使用]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/117131321</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/117131321</guid><author>kramer_light</author><pubDate>Fri, 21 May 2021 18:33:08 +0800</pubDate><description><![CDATA[react-router-dom基础路由使用目录结构路由设置文字解释
目录结构

这四个文件的相关关系如下：

话不多说，上马！
路由设置
index.js
import React from 'react';
import { render } from 'react-dom';
import * as serviceWorker from './serviceWorker';
import './index.css';
import './mock/index';
import { BrowserRou]]></description><category></category></item><item><title><![CDATA[React如何才能不在构造器中绑定函数]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/117095902</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/117095902</guid><author>kramer_light</author><pubDate>Fri, 21 May 2021 01:17:49 +0800</pubDate><description><![CDATA[使用箭头函数优点缺点原理
优点
在React中使用箭头函数可以自动绑定this，而不必在构造器中声明。
//常规情况下需要在构造器中绑定this
constructor（props）{
	this.cancelAE = this.cancelAE.bind(this);
}

cancelAE () {
    console.log('cancelAE');
}

缺点
在遇到this指针需要指向不同实例时，如果还使用指针在其它实例上取值会比较困难。
原理
React是函数式编程，我们通过function]]></description><category></category></item><item><title><![CDATA[浅谈对object.prototype的理解]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/116647774</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/116647774</guid><author>kramer_light</author><pubDate>Tue, 11 May 2021 15:18:45 +0800</pubDate><description><![CDATA[以下是个人理解，欢迎大家一起讨论。
目录object.prototype是什么？为什么要有object.prototype？object.prototype应该在哪些场景使用？引用
object.prototype是什么？
根据MDN的说明，object.protoType表示object的原型对象。
原型原型，顾名思义，就是用于创建对象的模板，如下图通过new boss这个原型创建了myboss实例。
而原型链反映的是原型的原型，如下图boss的原型是person。

如下，以person为原型创建bos]]></description><category></category></item><item><title><![CDATA[js字符串检索重复次数最多的字母和次数]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/116602076</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/116602076</guid><author>kramer_light</author><pubDate>Mon, 10 May 2021 17:28:02 +0800</pubDate><description><![CDATA[设置n、m两个索引，每次循环发现值相等则让m++，一直到最后不相等时对应的长度是 m-n。
然后将 n 索引位置移到 m 的位置，m++，继续循环，直到把所有的都找出来。
	let str = "aaaaababbcccdfg"  //非有序排序
    let arr = str.split('')
    arr = arr.sort()  //变成数组做好排序
    let obj = {}
    let code= arr[0]
    let n = 0
    let m = 0 //因为.]]></description><category></category></item><item><title><![CDATA[前端git多人协作开发规范]]></title><link>https://blog.youkuaiyun.com/kramer_light/article/details/116562883</link><guid>https://blog.youkuaiyun.com/kramer_light/article/details/116562883</guid><author>kramer_light</author><pubDate>Sun, 09 May 2021 12:06:48 +0800</pubDate><description><![CDATA[Git规范分支规范提交规范
分支规范
1、分支命名规范
master  //主分支，用于上线
dev  //开发分支
***-#210509  //个人开发分支，“#”后面的数字是分支创建日期，例子里的是2021年5月9日

2、分支合并流程
首先确定dev分支是否有更新
若没有更新，将个人开发分支合并到dev分支
若有更新，先将个人分支rebase到开发分支最新节点，而后测试有无新bug，合并入dev分支

提交规范
1、commit命名规范
常用部分：
① add：新增页面
② feat： 新增功能点
]]></description><category></category></item></channel></rss>