<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[smaller_coder的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/smaller_coder</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; smaller_coder]]></copyright><item><title><![CDATA[JDK 8.0新特性]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/121815143</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/121815143</guid><author>smaller_coder</author><pubDate>Wed, 15 Dec 2021 09:59:25 +0800</pubDate><description><![CDATA[1、Optional


2、lanmda

条件：

1.方法的参数或局部变量类型必须为接口!!!，才能使用Lambda

2.接口中有且仅有一个抽象方法

 针对一个接口中，是否有大于一个抽象方法？JDK8为我们新增了一个注解:@FunctionalInterface。它能够帮助我们检测这个接口是不是只有一个抽象方法，如果有两个抽象方法，则会报错。



3、接口和抽象类、抽象防范

接口：用interface修饰，只能定义抽象方法和①静态常量，子类可以同时实现多个接口。并且实现全部的抽象方法...]]></description><category></category></item><item><title><![CDATA[动态路由流程]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/106423592</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/106423592</guid><author>smaller_coder</author><pubDate>Fri, 29 May 2020 13:20:55 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[axios使用总结（一）]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/106417911</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/106417911</guid><author>smaller_coder</author><pubDate>Fri, 29 May 2020 09:04:18 +0800</pubDate><description><![CDATA[1、baseURL、timeout


axios.create({ 
baseURL:'', 
timeout:500     // 链接超时  当发送时间超过1秒就不再发送了

})

2、transformRequest 在发送到服务器前，对参数进行拦截、修改请求数据


axios.create({

    baseURL:'', 
    transformRequest: [function (data) { // `transformRequest` 允许在向服务器发送前，修        ]]></description><category></category></item><item><title><![CDATA[vue 响应式原理]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/103495813</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/103495813</guid><author>smaller_coder</author><pubDate>Wed, 11 Dec 2019 17:02:25 +0800</pubDate><description><![CDATA[不废话，直接上源码


function vue() {
  this.$data = { aaa: 1 };
  this.el = document.getElementById('app');
  this.virtualdom = '';
  this.observe(this.$data);
  this.render()
}
vue.prototype.observe = functi...]]></description><category></category></item><item><title><![CDATA[gird布局]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/103347992</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/103347992</guid><author>smaller_coder</author><pubDate>Mon, 02 Dec 2019 14:21:51 +0800</pubDate><description><![CDATA[&lt;div className="container"&gt;
        &lt;div className="item"&gt;1&lt;/div&gt;
        &lt;div className="item"&gt;2&lt;/div&gt;
        &lt;div className="item"&gt;3&lt;/div&gt;
        &...]]></description><category></category></item><item><title><![CDATA[如何在react项目中使用修饰器语法且不报错]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/103232920</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/103232920</guid><author>smaller_coder</author><pubDate>Mon, 25 Nov 2019 09:46:58 +0800</pubDate><description><![CDATA[在你的项目里执行 :



npm install customize-cra react-app-rewired @babel/plugin-proposal-decorators --save



在你的根目录即 和src同级的地方新建js文件 config-overrides.js 粘贴下方代码:



const{override,addDecoratorsLegacy}=require...]]></description><category></category></item><item><title><![CDATA[react Context]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/103197146</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/103197146</guid><author>smaller_coder</author><pubDate>Fri, 22 Nov 2019 11:24:16 +0800</pubDate><description><![CDATA[1、 父组件


父组件：
import PropTypes from 'prop-types'

  // 声明Context对象属性
  static childContextTypes = {
    propA: PropTypes.string,
    methodA: PropTypes.func
  }
  
  // 返回Context对象，方法名是约定好的
  getChild...]]></description><category></category></item><item><title><![CDATA[react 创建界面的2种常见方式以及react hooks]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/103186760</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/103186760</guid><author>smaller_coder</author><pubDate>Thu, 21 Nov 2019 17:04:19 +0800</pubDate><description><![CDATA[1、无状态state，function组件


import React, { Component } from 'react'
import ChildTest from './test'

function Test(props) {
  return (
    &lt;div className="safe-wrap"&gt;
      &lt;ChildTest camera="测试"...]]></description><category></category></item><item><title><![CDATA[sass知识点总结]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/103042053</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/103042053</guid><author>smaller_coder</author><pubDate>Wed, 13 Nov 2019 13:46:07 +0800</pubDate><description><![CDATA[1、 声明变量


$width:80px

.nav{
   width:$width
}
//变量引用其他变量
$highlight-color: #F90;
$highlight-border: 1px solid $highlight-color;
.selected {
  border: $highlight-border;
}

2、子组合选择器和同层组合选择器：&gt;、+和~;
...]]></description><category></category></item><item><title><![CDATA[react-redux与mobx]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/102722482</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/102722482</guid><author>smaller_coder</author><pubDate>Fri, 01 Nov 2019 13:44:35 +0800</pubDate><description><![CDATA[react中的状态管理有很多，我们今天讲的是react-redux 和 mobx。

一：mobx

1、根目录

index.js

import { Provider } from 'mobx-react'

ReactDOM.render(&lt;Provider locale={zh_CN}&gt;&lt;App store={AppStore} /&gt;&lt;/Provider&gt...]]></description><category></category></item><item><title><![CDATA[react-router-dom 之 Link 与NavLink]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/102851304</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/102851304</guid><author>smaller_coder</author><pubDate>Fri, 01 Nov 2019 09:55:04 +0800</pubDate><description><![CDATA[本文主要记录react项目react-router的使用,主要介绍两种，Link 和 NavLink


//menuList.js 导航条
import { NavLink ,Link} from 'react-router-dom'

&lt;NavLink exact to={childItem.path} data-index={number} className=    {store.c...]]></description><category></category></item><item><title><![CDATA[webPack项目优化]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/102544142</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/102544142</guid><author>smaller_coder</author><pubDate>Mon, 14 Oct 2019 11:09:47 +0800</pubDate><description><![CDATA[const path = require('path')
const uglifyPlugin = require('uglifyjs-webpack-plugin'); //
const isProduction = process.env.NODE_ENV === 'production';

function resolve(dir) {
  return path.join(__dirn...]]></description><category></category></item><item><title><![CDATA[全局注册组件]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/102458247</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/102458247</guid><author>smaller_coder</author><pubDate>Thu, 10 Oct 2019 08:37:35 +0800</pubDate><description><![CDATA[1、全局注册组件


import vue from 'Vue'

function changeStr(str) {
  return str.charAt(0).toUpperCase() + str.slice(1);
}

const requireComponent = require.context('.', false, /\.vue$/);
console.log(requireC...]]></description><category></category></item><item><title><![CDATA[WF项目问题总结]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/100216664</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/100216664</guid><author>smaller_coder</author><pubDate>Fri, 06 Sep 2019 08:41:34 +0800</pubDate><description><![CDATA[1、 后台接口对接时，参数传递方式

  urlcode 是一种编码方式，就是把http请求串的url 进行urlcode的编码，让httpserver 可以识别，不至于http的client、server 之前出现乱码或者误解。

例如： Content-Type: text/html;charset:utf-8;

application/x-www-form-urlencoded ：...]]></description><category></category></item><item><title><![CDATA[前端面试总结（三）]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/88941652</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/88941652</guid><author>smaller_coder</author><pubDate>Thu, 01 Aug 2019 08:21:12 +0800</pubDate><description><![CDATA[1. 双向绑定watcher的内部实现

2. vue虚拟dom的底层渲染原理

3. HTTP缓存策略

对于强制缓存，服务器通知浏览器一个缓存时间，在缓存时间内，下次请求，直接用缓存，不在时间内，执行比较缓存策略。
对于比较缓存，将缓存信息中的Etag和Last-Modified通过请求发送给服务器，由服务器校验，返回304状态码时，浏览器直接使用缓存



HTTP缓存有多种规则，根据是否需...]]></description><category></category></item><item><title><![CDATA[前端面试总结(一)]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/88707004</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/88707004</guid><author>smaller_coder</author><pubDate>Thu, 01 Aug 2019 08:21:01 +0800</pubDate><description><![CDATA[1. Created和mounted等生命周期函数分别都适合做什么操作

不要在选项属性或回调上使用箭头函数，比如 created: () =&gt; console.log(this.a) 或 vm.$watch('a', newValue =&gt; this.myMethod())。因为箭头函数是和父级上下文绑定在一起的，this 不会是如你所预期的 Vue 实例

对象中定义箭头函数，th...]]></description><category></category></item><item><title><![CDATA[前端面试总结（二）]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/88813079</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/88813079</guid><author>smaller_coder</author><pubDate>Thu, 01 Aug 2019 08:20:44 +0800</pubDate><description><![CDATA[1. JS 或者 OC实现多继承


function obj1 () {
	this.aaa = '124'

	// body...
}
	obj1.prototype.b = function aa () {

		console.log('111')
	}

function obj2 () {

	this.bbb = '123'

	// body...
}
	obj2.prototy...]]></description><category></category></item><item><title><![CDATA[TARO 实践问题总结]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/95767968</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/95767968</guid><author>smaller_coder</author><pubDate>Mon, 15 Jul 2019 10:47:55 +0800</pubDate><description><![CDATA[1. 事件如何获取自定义组件的自定义属性？

2. form提交表单时，点击无反应

3. 网络请求,Taro.request(), 是promise的封装，返回promise对象

4. taro实现小程序tabbar

5. taro 实现路由跳转，以及路由传参数

Taro.navigateTo({ url: '/pages/page/path/name' })

componentWill...]]></description><category></category></item><item><title><![CDATA[vue-amap 学习总结]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/89877427</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/89877427</guid><author>smaller_coder</author><pubDate>Mon, 06 May 2019 11:40:30 +0800</pubDate><description><![CDATA[1. 使用


      &lt;el-amap class="amap-box" :vid="'amap-vue'"&gt;&lt;/el-amap&gt;

2.在定制化程度较高的项目中，开发者可能只想通过 vue-amap 引入高德地图，而部分实例化的操作直接基于高德地图的 sdk 完成。这个时候就需要 lazyAMapApiLoaderInstance。


lazyAMapApiL...]]></description><category></category></item><item><title><![CDATA[js数组语法汇总]]></title><link>https://blog.youkuaiyun.com/smaller_coder/article/details/89838954</link><guid>https://blog.youkuaiyun.com/smaller_coder/article/details/89838954</guid><author>smaller_coder</author><pubDate>Sun, 05 May 2019 09:38:15 +0800</pubDate><description><![CDATA[1. split(''"), 字符串转数组,返回一个新的数组
2. slice(start,end),字符串截取，[1,2,3,5].slice(-1) =&gt; [5],返回截取后的数组，不改变原数组

3. splice()，删除或者添加字符串 [].splite(1,1,'2'), 在下标为1的位置开始 删除1个元素，添加“2”到这个位置,改变原来数组

4. push(),结尾添加元...]]></description><category></category></item></channel></rss>