自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 Vue学习路线

Vue作为最流行的前端框架,是80%企业前端招聘的首选。但在学习Vue时,面临的学习曲线的往往是陡峭的,时不时会遇到一座山峰或一个深坑,结果很长时间也无法逾越,导致逐步丧失了学习的信心。本书的宗旨是抹平Vue学习曲线,就是在攀登Vue这座高峰时,提供梯子和索道,或者干脆提供一辆缆车。从而在领略Vue高峰上无限风光的时候,不用在崎岖山道艰难跋涉,而是像似漫步在平坦的大道上。Vue是中国人尤雨溪所开发的软件,在github上的星数远超Angular,直逼React,最受国人青睐,80%以上的企业前端招聘,都

2020-12-01 13:35:06 561

原创 Java高薪学习路线

Java学习路线学习动力隔壁老王曾经说过,不想拿高薪的Java程序员,就不是个好的程序员。我们打开招聘网站,看看月薪30k-100k的java招聘信息,需要哪些技能?² 对于Java基础技术体系(包括JVM、类装载机制、多线程并发、IO、网络)有一定的掌握和应对经验;² ××年以上 Java 开发经验,熟悉并发、异步、RPC等技能,熟悉Spring、MyBatis等主流开源框架;² 熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息等机制;能对分布式常用技术进行合理应用,解决问题;²

2020-12-01 13:32:56 488

原创 18.1.1 登录界面设计——第18章 PC端项目功能开发

18.1.1 登录界面设计登录界面效果图如下图18.1-1:图18.1-1界面设计主要是2个输入框,2个按钮, script脚本内容暂时不去管,主要看模板文件和样式。在views目录下创建Login.vue文件,代码如下:<template> <div class="login"> <div class="login_card"> <div class="avatar_box"> <img ...

2020-06-05 10:41:28 537

原创 16.1 开发底部导航和顶部导航——移动端项目功能开发

16.1.1 底部导航 底部导航用的文件是components/content/BottomTabBar.vue,这个组件分别引用了components/common下的TabBar.vue和TabBarItem.vue。如下图16.1-2:图16.1-2这三个组件,构成了父-子-孙的关系,主要看一下插槽的用法。父组件往子组件和孙组件里插入4个导航条目。底部导航组件开发好之后,在App.vue主框架文件里引用<bottom-tab-bar/>,代码如下:&lt...

2020-06-04 16:45:06 278

原创 12.3 vue-router的应用示例——第12章 Vue-Router

12.3 vue-router的应用示例 如果用Vue Cli脚手架创建项目,就不需要下载vue-router,否则需要执行:npm install vue-router --save 来安装。下面我们用回溯的方式来展现vue-router示例,由表及里,先看整体逻辑,如图12.3-1:图12.3-11、App.vue的代码<template> <div id="app"> <div id="nav"> <rou...

2020-06-04 16:42:24 158

原创 8.4 Vue组件常用的7种通信方式——第8章 Vue组件进阶

8.4 Vue组件常用的7种通信方式Vue组件间通信方式有以下7种,已经学习过的不在此讲解了:1、父子props和$emit通信:父向子通过props传值;子向父通过events ($emit)事件传值,代码示例中多次用到,不再讲解。2、$attrs和$listeners方式通信应用场景是如果父组件A下面有子组件B,组件B下面有子组件C,这时如果组件A想传递数据给孙子组件C怎么办呢?示例代码如下:Vue.component('C',{ template:` &...

2020-06-04 16:40:07 181

原创 8.1.2 插槽slot的具名使用——第8章 Vue组件进阶

8.1.2 插槽slot的具名使用 8.1.1节讲的插槽是没有命名,叫匿名插槽。如果给插槽起个名字,就叫具名插槽。具名插槽比较实用,就像宾馆的房间号,没有房间号的宾馆,大家只能滚大铺了:),看一下用法:<body><!-- 父组件模板 --><div id="app"> <comp><span slot="room001">老总得到插槽是room001</span></comp>...

2020-06-04 16:38:07 136

原创 6.14 ES6的Promise 异步编程的方式——第6章 ES6基础学习

6.14 ES6的Promise 对象——异步编程的方式1、Promise 状态Promise 异步操作有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。Promise对象的参数是一个回调函数,该函数有2个参数,是2个回调函数,一个是成功时调用,一个是失败时调用。例:const p1 = new Promise(function(resolve,reject){ resolve('success1'); resolve('...

2020-06-04 16:36:09 113

原创 2.2 绑定Style样式——第2章 Class 与 Style 绑定

2.2 绑定Style样式1、Style绑定对象通过v-bind:style可以直接让Style绑定对象,例如:<div v-bind:style="{color: activeColor, fontSize: fontSize + 'px' }"/>v-bind:style的赋值是对象{},其中color是style样式,activeColor是Vue变量,合并成一个对象。生动形象地描述一下:就是用Vue变量控制style样式,是不是有种用电脑控制挖掘机炒菜的感觉:)让v-

2020-06-04 16:31:47 535

原创 1.4 计算属性——第1章 Vue起步知识

Vue的HTML模板里,可以用一些简单的运算表达式,放在{{}}里面,但在模板中放入太多的逻辑会让模板过重且难以维护,所以,对于任何复杂逻辑,都应当使用计算属性。注意:computed中的属性不能与data中的属性同名,否则会报错。 什么是计算属性呢?就是把data里的属性改变一下,就叫计算属性,若便于理解的话,内心里把它叫做“改变属性”,或叫做“变异属性”,所以,计算属性里必须包含data的属性,由data属性变异的。1.4.1 计算属性的举例说明计算属性是在computed对象里,代码...

2020-06-04 16:28:14 133

原创 1.2 Vue的核心概念MVVM——第1章 Vue起步知识

Vue的核心概念是MVVM,即View、Model和ViewModel,ViewModel是View和Model的桥梁。视图:View模型:Model视图模型:ViewModel上面的helloworld.html代码,体现的就是MVVM这种思路,如图1.1-4所示:图1.1-4三者之间的关系是:View在ViewModel这个桥梁上利用DOM-listener事件绑定监听事件,将DOM节点上发生的事件传给Model,Model在ViewModel这个桥梁上利用Data-bin

2020-06-04 15:53:48 333 1

原创 1.1 从Hello World开始—— 第1章 Vue起步知识

第1章 Vue起步知识 儿童相见不相识,笑问客从何处来?这是怎样的一种尴尬啊!如果学习了本章,对Vue会有个感性认识,避免对大名鼎鼎的Vue产生不相识的尴尬。1.1 从Hello World开始千里之行,始于第一行。先不介绍Vue,直接来一个Vue的Hello World页面。这个过程很简单,只需要两步,不能跳过去,因为下面的学习需要这么一个简易的开发环境来写代码。(1)从Vue官网下载vue.js,官网地址:https://cn.vuejs.org/。如图1.1-1:图1.1...

2020-06-04 15:51:35 190

原创 抹平Vue学习曲线 书籍目录

Vue作为最流行的前端框架,是80%企业前端招聘的首选。但在学习Vue时,面临的学习曲线的是陡峭的,时不时会遇到一座山峰或一个深坑,结果很长时间也无法逾越,导致逐步丧失了学习的信心。本书的宗旨就是在攀登Vue这座高峰时,提供梯子和索道,或者干脆提供一辆缆车,在领略Vue高峰上无限风光的时候,带领着您走康庄大道,而不是走崎岖山路。 本书是Vue入门到精通的教材,分为四大部分,第一部分为入门篇,适合没学过Vue的人员学习。第二部分为高级篇,适合有Vue开发经验的人员学习。第三部...

2020-06-04 15:32:18 262

原创 ES6入门教程——16、ES6 async 函数

async 是 ES7 才有的与异步操作有关的关键字。例子:async function helloAsync(){ return "helloAsync"; } console.log(helloAsync()) // Promise {<resolved>: "helloAsync"} helloAsync().then(v=>{ console.log(v); // helloAsync})awaitawait 操作符

2020-05-11 07:47:02 126

原创 ES6入门教程——15、ES6 Promise 对象——异步编程的解决方案

Promise 是一个对象,从它可以获取异步操作的消息。Promise 状态Promise 异步操作有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。除了异步操作的结果,任何其他操作都无法改变这个状态。const p1 = new Promise(function(resolve,reject){ resolve('success1'); resolve('success2');}); const p2 = new Promi

2020-05-11 07:42:43 136

原创 ES6入门教程——14、ES6的模块

一、ES6的模块的基本概念1、在 ES6 前, 实现模块化使用的是 RequireJS。2、ES6 的模块化分为导出(export) @与导入(import)两个模块。模块中可以导入和导出各种类型的变量,如函数,对象,字符串,数字,布尔值,类等。3、每个模块都有自己的上下文,每一个模块内声明的变量都是局部变量,不会污染全局作用域。4、每一个模块只加载一次(是单例的), 若再去加载同目录下同文件,直接从内存中读取。二、export 与 import基本用法/*-----export

2020-05-11 07:24:09 138

原创 ES6入门教程——13、ES6的类

一、传统js在没有类概率的情况下实现类概率方式它是基于原型的面向对象语言。原型对象特点就是将自身的属性共享给新对象。非常容易让人困惑!如果要生成一个对象实例,需要先定义一个构造函数,在prototype上增加方法,然后通过new操作符来完成。构造函数示例://函数名和实例化构造名相同且大写(非强制,但这么写有助于区分构造函数和普通函数)function Student(name,age) { this.name = name; this.age=age;}Stude...

2020-05-11 07:15:15 110

原创 ES6入门教程——12、ES6 迭代器

一、Iterator迭代过程它是通过一个键为Symbol.iterator 的方法来实现。 迭代器是用于遍历数据结构元素的指针(如数据库中的游标)。 通过 next 方法进行向下迭代指向下一个位置, next 方法会返回当前位置的对象,对象包含了 value 和 done 两个属性, value 是当前属性的值, done 用于判断是否遍历结束。const items = ["0", "1", "2"];const it = items[Symbol.iterator](); it.nex

2020-05-11 06:49:20 129

原创 ES6入门教程——11、ES6 函数

一、对函数的扩展1、提供默认参数function fn(name,age=19){ console.log(name+","+age);}fn("es6",18); // es6,18fn("es6",""); // es6,fn("es6"); // es6,192、不定参数function f(...values){ console.log(values.length);}f(a,b); //2f(a,b,c,d); //4二、箭头

2020-05-11 06:34:18 152

原创 ES6入门教程——11、ES6函数

一、对参数的扩展1、默认值function fn(name,age=17){ console.log(name+","+age);}fn("darlin",19); // darlin,19fn("darlin",""); // darlin,fn("darlin"); // darlin,172、不定参数function f(...values){ console.log(values.length);}f(1,2); //2f(1,2,3

2020-05-11 06:03:00 95

原创 ES6入门教程——10、ES6 数组

一、数组创建Array.of()console.log(Array.of(1, 2, 3, 4)); // [1, 2, 3, 4] // 参数值可为不同类型console.log(Array.of(1, '2', true)); // [1, '2', true] // 参数为空时返回空数组console.log(Array.of()); // []Array.from()将类数组对象或可迭代对象转化为数组。// 参数为数组,返回与原数组一样的数组console.lo

2020-05-10 19:47:04 210

原创 ES6入门教程——9、ES6对象增强写法——字面量

一、ES6对象1、普遍写法let obj=new Object()2、增强写法(字面量)let obj={}3、示例const obj = { ["he"+"llo"](){ return "Hi"; }}obj.hello(); //"Hi"二、对象合并let age = {age: 15};let name = {name: "Amy"};let person = {...age, ...name};person; //{age: 15, n

2020-05-10 19:36:57 175

原创 ES6入门教程——8、ES6字符串

一、一般用法let string = "apple,banana,orange";string.includes("banana"); // truestring.startsWith("apple"); // truestring.endsWith("apple"); // falsestring.startsWith("banana",6) // true二、字符串重复console.log("Hello,".repeat(3)); // "Hello,Hello,Hel

2020-05-10 19:31:20 94

原创 ES6入门教程——7、ES6 Reflect 与 Proxy

一、Proxy代理如果不直接操作对象,而是像代理模式,通过对象的代理对象进行操作,在进行这些操作时,可以添加一些需要的额外操作,譬如进行拦截。//定义一个类const employee = { firstName: 'Tapas', lastName: 'Adhikary'};//定义一个处理let handler = { get: function(target, fieldName) { if(fieldName === 'f

2020-05-10 17:52:59 202

原创 ES6入门教程——6、ES6 Map 与 Set

一、map的赋值和遍历赋值var myMap = new Map();myMap.set(key,value),key值可以时字符串,对象,或函数遍历 for...ofvar myMap = new Map();myMap.set(0, "zero");myMap.set(1, "one"); // 将会显示两个 log。 一个是 "0 = zero" 另一个是 "1 = one"for (var [key, value] of myMap) { console.l.

2020-05-10 15:55:05 105

原创 ES6入门教程——5、ES6 Symbol

一、ES6增加Symbol这个原始数据的理由Symbol不是对象类型,而是原始数据,增加这个原始数据类型的理由就是:每次调用,希望产生不同的值。应用场景是Map的key值,每次都希望key不相同。let sy = Symbol("aa");console.log(sy); // Symbol(aa)typeof(sy); // "symbol" // 相同参数 Symbol() 返回的值不相等let sy1 = Symbol("aa"); sy === sy1;

2020-05-10 15:41:43 88

原创 ES6入门教程——4、ES6的解构赋值

一、数组解构赋值基本let [a, b, c] = [1, 2, 3]; // a = 1 // b = 2 // c = 3可嵌套let [a, [[b], c]] = [1, [[2], 3]];// a = 1 // b = 2 // c = 3二、对象解构赋值let { foo, bar } = { foo: 'aaa', bar: 'bbb' };// foo = 'aaa' // bar = 'bbb' let { baz : foo } = { baz : 'd

2020-05-10 15:17:31 78

原创 ES6入门教程——3、块级作用域和let,const,var区别

一、没有块作用域的ES5 var对于ES5的var,咱们经常用到,不知道大家注意到没有,var 变量声明,没有块作用域。例1:for(var i=0;i<=5;i++){ console.log("hello");}console.log(i); //5在if或者for循环中声明的变量会泄露成全局变量,var i 是在块中定义的,结果变成了全局变量。再看一个例子:例2。var temp = new Date();function f(){ consol

2020-05-10 15:05:55 117

原创 ES6入门教程——2、ES6开发环境

一、使用支持ES6的浏览器 各大浏览器支持版本及开始时间:浏览器支持情况 Chrome 58 Edge 14 Firefox 54 Safari 10 Opera 55 2017 年 1 月 2016 年 8 月 2017 年 3 月 2016 年 7 月 2018 年 8 月 二、使用Node.js开发环境 Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/。当前最新版...

2020-05-10 13:08:26 119

原创 ES6入门教程——1、ES6概述

ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。在开发中,采用ES6开发,通过转换工具Babel,将代码转换成ES5,从而满足绝大多数低版本浏览器的支持。...

2020-05-10 12:34:02 270

转载 深入理解Ribbon之源码解析

转载请标明出处: http://blog.csdn.net/forezp/article/details/74820899 本文出自方志朋的博客什么是RibbonRibbon是Netflix公司开源的一个负载均衡的项目,它属于上述的第二种,是一个客户端负载均衡器,运行在客户端上。它是一个经过了云端测试的IPC库,可以很好地控制HTTP和TCP客户端的一些行为。 Feig

2017-10-28 17:33:13 184

转载 Eureka的一些概念

转载请标明出处: http://blog.csdn.net/forezp/article/details/73017664 本文出自方志朋的博客Eureka的一些概念Register:服务注册 当Eureka客户端向Eureka Server注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等。Renew:服务续约 E

2017-10-28 17:10:14 643

转载 深入理解Feign之源码解析

转载请标明出处: 本文出自方志朋的博客什么是FeignFeign是受到Retrofit,JAXRS-2.0和WebSocket的影响,它是一个jav的到http客户端绑定的开源项目。 Feign的主要目标是将Java Http 客户端变得简单。Feign的源码地址:https://github.com/OpenFeign/feign写一个Feign在我之前的

2017-10-28 16:51:42 191

转载 Spring Boot——开发新一代Spring Java应用

Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系。随着Spring 3.0的发布,Spring IO团队逐渐开始摆脱XML配置文件,并且在开发过程中大量使用“约定优先配置”(convention over configuration)的思想来摆脱Spring框架中各类繁复纷杂的配置(即时是Java Con

2017-10-28 16:14:01 190

转载 史上最简单的 SpringCloud 教程 | 终章

转载请标明出处: http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客错过了这一篇,你可能再也学不会 Spring Cloud 了!Spring Boot做为下一代 web 框架,Spring Cloud 作为最新最火的微服务的翘楚,你还有什么理由拒绝。赶快上船吧,老船长带你飞。终章不是最后一篇,它是一个

2017-10-28 15:45:38 117

转载 Java中的多线程你只要看这一篇就够了

引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些

2017-10-28 15:17:21 321

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除