- 博客(60)
- 资源 (19)
- 收藏
- 关注
原创 vue-router 使用name跳转时,404失效的问题
使用name跳转的时候,如果路由表中没有找到对应的name的时候,并不会跳转到404页面,例如下面的代码: gotoUserCenter() { this.$router.push({ name: 'userCenterPage' }) },当name:“userCenterPage”不存在于路由表中时就会跳转到一个空白页面,而并不会跳转到404页面,其实是因为vue-router没有对这种情况做什么处理:当前网上的应对方案是1. 不使用name来跳转 2. 在守
2021-09-26 10:55:23 4322 2
原创 ubuntu下的docker配置
1. 起因公司里的代码管理用的还是svn,这种古老的代码库造成了代码合并是个痛苦的事情,所以急需一个靠谱的git私库关于管理小组的代码,这个时候我将目光移向了docker,毕竟方便的开箱即用不香么?2. 安装docker折腾了很久的ubuntu安装docker的教程,始终卡在docker的download源404问题上root@huangssssx-TM1801:/etc/apt# add...
2019-12-15 04:32:07 206
原创 关于new操作符的分析
关于new操作符的分析1. new的执行步骤生成一个新的object.将构造函数的上下文指向object.当构造函数返回值是基本数据类型时返回object,否则返回原始返回值。2. 代码function _new(fun,args){ let o = Object.create(fun.getPrototypeOf()); let res = fun.apply(o,args)...
2019-10-08 00:35:54 150
原创 前端面试题
1. script标签中defer和async属性的区别答:a> 如果没有defer和async浏览器会立即加载并执行js脚本,此时后续文档流的渲染将会被阻塞。b> 如果是defer标志当浏览器遇到这种标签时,会开始加载script标签内容,但是不会阻塞后续文档元素的渲染,待所有页面元素解析完成后,DOMContentLoaded 事件触发之前执行这个script标签的代码。...
2019-08-20 13:41:22 148
原创 react-tree-walker 源码阅读
/* * @Description: In User Settings Edit * @Author: your name * @Date: 2019-08-18 13:12:37 * @LastEditTime: 2019-08-18 23:19:58 * @LastEditors: Please set LastEditors */var defaultOptions = {...
2019-08-19 09:42:40 155
转载 nodejs控制台彩色文字输出
console.log('\x1B[36m%s\x1B[0m', info); //cyanconsole.log('\x1B[33m%s\x1b[0m:', path); //yellowvar styles = { 'bold' : ['\x1B[1m', '\x1B[22m'], 'italic' : ['\x1B[3m', '\x...
2019-07-28 00:43:37 1282
原创 外边距塌陷(margin collapse)
流内块组件的top/bottom有时候会合并为单个外边距(合并后最大的外边距),这样的现象被称为外边距塌陷。https://blog.csdn.net/sinat_22996989/article/details/47255541...
2019-07-07 23:23:38 111
原创 css 布局
1. 水平垂直居中(css3):<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <me...
2019-07-07 16:36:43 75
原创 【VUE实战】学习笔记(三)
v-bind指令:作用:用于动态更新HTML上的属性,当数据变化时,就会重新渲染。缩写:v-bind:class=“xxxx” 等于:class=“xxxx”绑定class的几种方式:受控方式 <div class="container" :class="{'red':isRed ,’ error ’:isError}"> <a v-bind...
2019-06-12 23:49:26 136
原创 javascript 执行机制
事件循环Event Loophttps://segmentfault.com/a/1190000013102056https://www.cnblogs.com/intangible/p/8066979.htmlconsole.log('1');setTimeout(function() { console.log('2'); process.nextTick(funct...
2019-06-09 22:50:00 86
原创 leetcode(二)宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb”输出: 3示例 2:输入: J = “z”, S = “ZZ”输出...
2019-06-09 18:42:17 86
原创 leetcode(一)两数之和
问题:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]回答:/** * @param {number[]} nums * @pa...
2019-06-03 00:11:50 79
原创 【VUE实战】学习笔记(二)
1.计算属性:计算属性是对【复杂表达式=>数据】的聚合,并不一定是个纯函数,但是最好能用一个纯函数作为计算属性。<template> <div class="lesson2">{{personNames}}</div></template><script>export default { name: "Hello...
2019-05-30 23:42:53 137
原创 【VUE实战】学习笔记(一)
1. 前言:插值与表达式。生命周期。2. 生命周期:created 实例创建完成后调用,此阶段完成了数据的观测等,但尚未挂载, $el 还不可用。需要初始化处理一些数据时会比较有用,后面章节将有介绍.mounted el 挂载到实例上后调用,一般我们的第一个业务逻辑会在这里开始beforeDestroy 实例销毁之前调用。主要解绑一些使用 addEventListener 监听...
2019-05-28 00:00:43 93
原创 设计模式(九)组合模式
1. 前言:使用场景:部分、整体场景。比如:树形菜单、文件文件夹的管理优点:高层模块调用简单,节点自由增加。缺点当系统业务复杂时,实现组合模式将会非常困难,并非所有组件的业务都是一致的,而对于这将造成不可避免的冗余。比如:root节点需要提供层级缩略图功能,但是子节点并不需要,但是由于使用了组合模式则每个对象都有同样的代码,这导致无谓的浪费。例子:<!DOCT...
2019-04-10 18:07:22 99
原创 设计模式(八)过滤器模式
1. 前言过滤器模式是个比较特殊的模式,它没有很复杂的结构,作为一个模式来说它太简单了,简单到只有一个输入和一个输出,可以认为是个不标准的纯函数(因为输入的数组引入了外部干扰的可能)。使用场景:当需要将过滤逻辑和业务代码解耦的时候优点:可复用,解耦过滤逻辑。无2. 代码:<!DOCTYPE html><html lang="en"><head>...
2019-04-07 22:45:05 124
原创 设计模式(七)桥接模式
1. 前言:使用场景:当涉及到多维度时,也就是多层继承的情况时。优点:抽象和实现的分离。优秀的扩展能力。实现细节对客户透明。缺点:桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。2. 例子使用继承实现时:可以看出当要增加一个新的产品时,比如:LenoveDesktop,则需要影响到两个维度:电脑种...
2019-03-31 19:12:29 81
原创 设计模式(六)适配器模式
1.前言说起适配器模式最先想到的例子就是110v和220v插头转接器的例子了:有一天你从香港买来一个iphone8,但是香港的插头要比大陆地区的插头大一些,你回到家之后发现在现有的屋子环境下找不到合适的插口能够插入这个插头。现在有两个办法,一是:更换屋里的所有的或者部分插口能够插下iphone8,但是这个行不通的,家是在大陆,一般电器插口还是国标的,虽然解决了我一时需要使用ip8,但是手机更...
2019-03-29 16:48:29 99
原创 设计模式(五)原型模式
1.前言使用场景:当创建一个对象的前置操作会耗费非常多的资源时。比如初始化一个实例需要查询多个数据库的时候,这个时候我们只需要考虑输入输出时候存在唯一对应关系,如果是的话就可以将结果缓存起来,当下次需要再次生产该类型的对象时clone一份就可以,节省了巨大的系统资源。当类的实例种类有限时。因为原型模式实际上就是一种缓存模式,当类的实例类型很多的时候比如:animals类,根据场景不同产...
2019-03-28 13:39:16 89
原创 设计模式(四)建造者模式
1.前言使用场景:当对象内部有复杂的结构时。组件有类似的结构时。优点:建造者独立,有利于扩展。功能原子化有利于细节控制。缺点:需要组件有相似的结构,范围有限制。结构复杂时,会有很多的组件类。2.例子<script> /** * 由于js中没有interface和abstract 概念 * 建造者模式只能直接使用...
2019-03-26 19:12:33 66
原创 设计模式(三)单例模式
1. 前言主要解决:一个全局使用的类频繁地创建与销毁。使用场景:当你想控制实例数量,节省系统资源的时候。优点:避免频繁的创建和销毁实例,在内存里只有一个实例,减少了内存开销。避免对资源的多重占用。(写文件的时候如果不使用单例模式,有可能在同一时间对同一文件进行写操作)缺点:因为单例的指针存放在静态区域,所以只有当程序结束时才会释放内存,所以不要滥用单例,这可能导致内存泄漏!不...
2019-03-25 18:56:56 190
原创 mangodb学习(二) 创建 & 删除 集合
1.创建集合db.createCollection(name, options)参数说明:name: 要创建的集合名称options: 可选参数, 指定有关内存大小及索引的选项options 可以是如下参数:capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 siz...
2019-03-24 23:02:06 121
原创 mangodb学习(一) 创建 & 删除 数据库
1. 创建数据库创建一个名字叫runoob的数据库:use runoob2.查看所有数据库show dbs如果在列表中没有找到你创建的数据库,那么说明你的表里没有数据3. 增加数据db.runoob.insert({name:"hcj"});4.删除数据库删除当前数据库:db.dropDatabase()...
2019-03-24 22:22:03 265
原创 设计模式(二)抽象工厂模式
1. 前言抽象工厂(Abstract Factory Pattern)就是生产工厂的工厂,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。使用场景:当我们需要一整套的解决方案时,比如:1、QQ 换皮肤,一整套一起换。 2、生成不同操作系统的程序。...
2019-03-24 15:05:34 139
原创 设计模式(一)工厂模式
1.前言:工厂模式属于创建型模式:创建型模式:这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。使用场景:当我们明确的计划在不同环境实例化不同实例时,比如:我们想把不同级别的日志记录在不同的文件中时。优点:实例化对象时只需要知道名字即可(业务和实现解耦),...
2019-03-22 14:43:40 95
原创 纯函数学习 (一)什么是纯函数
纯函数学习 (一)什么是纯函数1.前言:纯函数的定义是这样的:纯函数是这样一种函数,即相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用。所以我们可以看出纯函数的定义:相同输入必定能得出相同输出。函数执行过程中没有任何副作用。下面让我们来围绕这两点来学习纯函数。2.辨认纯函数纯函数和非纯函数的辨认是很难的,写的时候我们就会会出现疑惑导致出现错误,这里我将举个例子...
2019-03-20 23:23:50 858
原创 使用websocket实现聊天室功能
1.websocket的由来和使用场景WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在 WebSocket API 中,...
2019-03-19 23:25:00 429
原创 自学React-native (第十一天)-- Android安装包打包流程
1.设置android/gradle.propertiesMYAPP_RELEASE_KEY_ALIAS=android_keystoreMYAPP_RELEASE_KEY_PASSWORD=123456MYAPP_RELEASE_STORE_PASSWORD=123456MYAPP_RELEASE_STORE_FILE=android_keystore.jksandroid.useDe...
2019-03-16 22:12:59 245
原创 自学React-native (第十天)--使用FlatList实现下拉刷新和下拉加载更多
1. 前言:终于要开始编写业务代码了,今天将组合前面9天学习的内容来制作一个「最热」功能.2.代码View层page/PopularTab.jsimport React, { Component } from "react";import { FlatList, View, Text, StyleSheet, Button, RefreshControl, ActivityIndica...
2019-03-07 17:37:43 1080
原创 [javascript 进阶]实现深拷贝的几种方法
1. 前言这几天估计是嗑书嗑疯了,晚上死活睡不着估计神经衰弱,今天就不做react-native专栏了。正好前几天面试被问到深拷贝的问题,今天就做个专栏讨论吧。2.深拷贝的几个实现方式:1. JSON实现方式这个是大家都知道的一种方式,不过它有三点问题:var obj = { name:&quot;foo&quot;, fun:function(){}, obj:obj, age:undefined...
2019-03-06 16:45:46 239
原创 自学React-native (第九天)-- 网络编程以及离线缓存框架实现
1.前言:react-native 提供了全局的fetch函数作为替代xhr的网络通讯模块。之所以这么选择是由于xhr存在以下的缺点:1.设计上不符合责任分离原则,将输入、输出和用事件来跟踪的状态混杂在一个对象里。2.与最近的promise以及基于生成器的异步编程模型不太搭。需要注意的是,fetch规范与jquery.ajax主要有两种方式的不同:当接收到一个代表错误的HTTP状态...
2019-03-05 17:38:49 583
原创 自学React-native (第八天)-- redux使用
1. 前言:react的状态管理首选Redux,Redux是javascript状态容器,提供可预测话的状态管理,可以让你构建异质化的应用,运行于不同的环境(客户端、服务器、原声应用),并且易于测试。React-redux的流程简图如下:2.开始安装模块npm install --save reduxnpm install --save react-reduxnpm instal...
2019-03-03 19:52:58 573 1
原创 自学React-native (第七天)-- 导航嵌套
自学React-native (第七天)-- 导航嵌套1. 前言这里介绍遇到的一些问题。2.用什么方式来嵌套?当你在一个导航容器中包含另一个导航容器的时候会有提示:在项目中嵌套navigtor(导航器)是很普遍的情况,这个时候如何处理各个页面间的跳转将是个很令人头疼的问题,接下来我会给出几种处理方案。createAppContainer包裹:...
2019-03-01 00:16:35 1259 1
原创 自学React-native (第六天)-- 需求分析
自学React-native (第六天)-- 需求分析1.前言对于我们程序员来说,任何项目的第一步不是编码而是需求分析,作为一切的开头可以说需求分析很大程度决定了一个项目的整体框架,好的需求分析对加速开发减少返工增进各部门协调都有很大的意义。2.需求分析需求整理:开发这款app的初衷是来自于阅读github-trending的需求,github的这个趋势服务帮助我们找到全球githu...
2019-02-26 11:55:08 280
原创 自学React-native (第五天)-- SectionList 学习
自学React-native (第五天)-- SectionList 学习1.前言SectionList组件使用方式和FlatList十分相似,不同点仅仅是实现了分组的功能:如上图所示,城市名处于不同的分组中,分组栏的标题在上滑到顶端时将会粘附在顶端直到下一个标题被划到顶部为止。2. 代码阅读/** * Sample React Native App * https://githu...
2019-02-25 23:27:38 177
原创 自学React-native (第五天)-- MAC环境搭建
自学React-native (第五天)-- IOS环境搭建1. 前言这几天学习react-native深深觉得Mac环境是必要的,比如切换查看ios平台效果,Xcode的模拟器的方便,教程基本是使用iOS 做开发环境等等等等。所以笔者这两天搭了个黑苹果的环境(没办法穷买不起垃圾桶)终于可以高效且方便的进行RN开发了。有人可能问我为什么不用虚拟机,别人我不知道是什么情况,我8700k+gt...
2019-02-25 21:51:41 343
原创 自学React-native (第五天)-- FlatList
自学React-native (第四天)-- FlatList1.前言FlatList是facebook公司用来替代ViewList控件的新组件。为什么选择FlatList呢?因为相比ViewList的全渲染机制,FlatList更省资源,卡顿和OOD的几率小。具体执行上的机制是类似走马灯,处于屏幕外的item部分不会全部显示而会由白屏取代以节省资源,所以FlatList有个问题就是组件本身...
2019-02-23 23:53:19 605
原创 Thunk函数
Thunk函数1.前言最早的thunk函数起源来自于“传值调用”(call by value) 和“传名调用”(call by name)之争。对于: let x = 1; function fn(m){ return m*2; } fn(x+1);传值调用的主张:fn(x+1)==fn(2);//执行前就进行计算传名调用的主张...
2019-02-23 15:03:59 1571
原创 自学React-native (第四天)-- BottomTabNavigator 和 MaterialBottomTabNavigator、DrawerNavigator导航
自学React-native (第三天)-- BottomTabNavigator导航1.前言:由于使用了下边栏图标,所以安装了react-native-vector-icons,由于rnvi组件带有自己的ios/android代码所以需要使用命令:react-native link react-native-vector-icons将原生资源引入到本地项目中。影响到的地方:android...
2019-02-22 21:13:06 409
网速限制器
2012-05-17
F.Assist swc 打包工具
2010-12-08
Flex Primitive Explorer 以及 插件包(swc)
2010-12-08
flex 安全沙箱 策略问题 demo
2010-12-03
flex 推送 例子
2010-04-05
flex3.0 (AIR) 模拟资源管理器
2009-02-13
websundew中文说明书
2007-11-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人