vue.js实战电子书免费赠送
必须先转发,转发,转发,加“大数据java架构师”关注,然后私信“vuejs”即可下载地址
Vue.js实战以Vue.js 2为基础,以项目实战的方式来引导读者渐进式学习Vue.js。本书分为基础篇、进阶篇和实战篇三部分。基础篇主要是对 Vue.js 核心功能的介绍;进阶篇主要讲解前端工程化Vue.js的组件化、插件的使用;实战篇着重开发了两个完整的示例,所涉及的内容涵盖Vue.js绝大部分API。通过阅读本书,读者能够掌握Vue.js框架主要API的使用方法、自定义指令、组件开发、单文件组件、Render函数、使用webpack开发可复用的单页面富应用等。本书示例丰富、侧重实战,适用于刚接触或即将接触Vue.js的开发者,也适用于对Vue.js有过开发经验,但需要进一步提升的开发者。 作译者梁灏:网名 Aresn,基于 Vue.js 的开源 UI 组件库 iView 的作者。目前在大数据公司 TalkingData 负责可视化基础架构。创办了程序员社区 TalkingCoder。
目录
第1篇 基础篇第1章 初识Vue.js 31.1 Vue.js是什么 31.1.1 MVVM模式 31.1.2 Vue.js有什么不同 41.2 如何使用Vue.js 51.2.1 传统的前端开发模式 51.2.2 Vue.js的开发模式 5第2章 数据绑定和第一个Vue应用 82.1 Vue实例与数据绑定 92.1.1 实例与数据 92.1.2 生命周期 102.1.3 插值与表达式 112.1.4 过滤器 132.2 指令与事件 152.3 语法糖 18第3章 计算属性 193.1 什么是计算属性 193.2 计算属性用法 203.3 计算属性缓存 23第4章 v-bind及class与style绑定 254.1 了解v-bind指令 254.2 绑定class的几种方式 264.2.1 对象语法 264.2.2 数组语法 274.2.3 在组件上使用 294.3 绑定内联样式 30第5章 内置指令 325.1 基本指令 325.1.1 v-cloak 325.1.2 v-once 335.2 条件渲染指令 335.2.1 v-if、v-else-if、v-else 335.2.2 v-show 365.2.3 v-if与v-show的选择 365.3 列表渲染指令v-for 375.3.1 基本用法 375.3.2 数组更新 415.3.3 过滤与排序 435.4 方法与事件 445.4.1 基本用法 445.4.2 修饰符 465.5 实战:利用计算属性、指令等知识开发购物车 47第6章 表单与v-model 556.1 基本用法 556.2 绑定值 616.3 修饰符 63第7章 组件详解 657.1 组件与复用 657.1.1 为什么使用组件 657.1.2 组件用法 667.2 使用props传递数据 707.2.1 基本用法 707.2.2 单向数据流 727.2.3 数据验证 747.3 组件通信 757.3.1 自定义事件 757.3.2 使用v-model 777.3.3 非父子组件通信 797.4 使用slot分发内容 837.4.1 什么是slot 837.4.2 作用域 847.4.3 slot用法 857.4.4 作用域插槽 877.4.5 访问slot 897.5 组件高级用法 907.5.1 递归组件 907.5.2 内联模板 927.5.3 动态组件 937.5.4 异步组件 947.6 其他 957.6.1 $nextTick 957.6.2 X-Templates 967.6.3 手动挂载实例 977.7 实战:两个常用组件的开发 987.7.1 开发一个数字输入框组件 987.7.2 开发一个标签页组件 106第8章 自定义指令 1188.1 基本用法 1188.2 实战 1218.2.1 开发一个可从外部关闭的下拉菜单 1218.2.2 开发一个实时时间转换指令v-time 126第2篇 进阶篇第9章 Render函数 1339.1 什么是Virtual Dom 1339.2 什么是Render函数 1369.3 createElement用法 1409.3.1 基本参数 1409.3.2 约束 1439.3.3 使用JavaScript代替模板功能 1479.4 函数化组件 1539.5 JSX 1579.6 实战:使用Render函数开发可排序的表格组件 1599.7 实战:留言列表 1729.8 总结 183第10章 使用webpack 18410.1 前端工程化与webpack 18410.2 webpack基础配置 18710.2.1 安装webpack与webpack-dev-server 18710.2.2 就是一个js文件而已 18810.2.3 逐步完善配置文件 19110.3 单文件组件与vue-loader 19410.4 用于生产环境 201第11章 插件 20611.1 前端路由与vue-router 20711.1.1 什么是前端路由 20711.1.2 vue-router基本用法 20811.1.3 跳转 21211.1.4 高级用法 21311.2 状态管理与Vuex 21611.2.1 状态管理与使用场景 21611.2.2 Vuex基本用法 21711.2.3 高级用法 22111.3 实战:中央事件总线插件vue-bus 227第3篇 实战篇第12章 iView经典组件剖析 23512.1 级联选择组件Cascader 23612.2 折叠面板组件Collapse 24912.3 iView内置工具函数 257第13章 实战:知乎日报项目开发 26113.1 分析与准备 26113.2 推荐列表与分类 26513.2.1 搭建基本结构 26513.2.2 主题日报 26713.2.3 每日推荐 27113.2.4 自动加载更多推荐列表 27613.3 文章详情页 27813.3.1 加载内容 27813.3.2 加载评论 28113.4 总结 286第14章 实战:电商网站项目开发 28814.1 项目工程搭建 28814.2 商品列表页 29014.2.1 需求分析与模块拆分 29014.2.2 商品简介组件 29114.2.3 列表按照价格、销量排序 29714.2.4 列表按照品牌、颜色筛选 30614.3 商品详情页 30914.4 购 物 车 31314.4.1 准备数据 31414.4.2 显示和操作数据 31614.4.3 使用优惠码 32014.5 总结 324第15章 相关开源项目介绍 32515.1 服务端渲染与Nuxt.js 32515.1.1 是否需要服务端渲染 32515.1.2 Nuxt.js 32615.2 HTTP库axios 32715.3 多语言插件vue-i18n 329
必须先转发,转发,转发,加“大数据java架构师”关注,然后私信“vuejs”即可下载地址
「Java 8实战」PDF电子书现在可以免费领取了
自1998年JDK 1.0(Java 1.0)发布以来,Java已经受到了学生、项目经理和程序员等一大批活跃用户的欢迎。这一语言极富活力,不断被用在大大小小的项目里。从Java 1.1(1997年) 一直到Java 7(2011年),Java通过增加新功能,不断得到良好的升级。Java 8则是在2014年3月发布的。那么,问题来了:为什么你应该关心Java 8?
我们的理由是,Java 8所做的改变,在许多方面比Java历史上任何一次改变都深远。而且好消息是,这些改变会让你编起程来更容易,用不着再写类似下面这种啰嗦的程序了(对inventory 中的苹果按照重量进行排序):
本书中第一段Java 8的代码!
它念起来就是“给库存排序,比较苹果的重量”。现在你不用太关注这段代码,本书后面的章节将会介绍它是做什么用的,以及你如何写出类似的代码。
Java 8对硬件也有影响:平常我们用的CPU都是多核的——你的笔记本电脑或台式机上的处理器可能有四个CPU内核,甚至更多。但是,绝大多数现有的Java程序都只使用其中一个内核, 其他三个都闲着,或只是用一小部分的处理能力来运行操作系统或杀毒程序。
在Java 8之前,专家们可能会告诉你,必须利用线程才能使用多个内核。问题是,线程用起来很难,也容易出现错误。从Java的演变路径来看,它一直致力于让并发编程更容易、出错更少。
在软件工程中,一个众所周知的问题就是,不管你做什么,用户的需求肯定会变。比方说, 有个应用程序是帮助农民了解自己的库存的。这位农民可能想有一个查找库存中所有绿色苹果的功能。但到了第二天,他可能会告诉你:“其实我还想找出所有重量超过150克的苹果。”又过了两天,农民又跑回来补充道:“要是我可以找出所有既是绿色,重量也超过150克的苹果,那就太棒了。”你要如何应对这样不断变化的需求?理想的状态下,应该把你的工作量降到最少。此外, 类似的新功能实现起来还应该很简单,而且易于长期维护。
行为参数化就是可以帮助你处理频繁变更的需求的一种软件开发模式。一言以蔽之,它意味着拿出一个代码块,把它准备好却不去执行它。这个代码块以后可以被你程序的其他部分调用, 这意味着你可以推迟这块代码的执行。例如,你可以将代码块作为参数传递给另一个方法,稍后再去执行它。这样,这个方法的行为就基于那块代码被参数化了。例如,如果你要处理一个集合, 可能会写一个方法:
- 可以对列表中的每个元素做“某件事”
- 可以在列表处理完后做“另一件事”
- 遇到错误时可以做“另外一件事”
行为参数化说的就是这个。打个比方吧:你的室友知道怎么开车去超市,再开回家。于是你可以告诉他去买一些东西,比如面包、奶酪、葡萄酒什么的。这相当于调用一个goAndBuy方法,把购物单作为参数。然而,有一天你在上班,你需要他去做一件他从来没有做过的事情:从邮局取一个包裹。现在你就需要传递给他一系列指示了:去邮局,使用单号,和工作人员说明情况,取走包裹。你可以把这些指示用电子邮件发给他,当他收到之后就可以按照指示行事了。你现在做的事情就更高级一些了,相当于一个方法:go,它可以接受不同的新行为作为参数,然后去执行。
在上一章中,你了解了利用行为参数化来传递代码有助于应对不断变化的需求。它允许你定义一个代码块来表示一个行为,然后传递它。你可以决定在某一事件发生时(例如单击一个按钮) 或在算法中的某个特定时刻(例如筛选算法中类似于“重量超过150克的苹果”的谓词,或排序中的自定义比较操作)运行该代码块。一般来说,利用这个概念,你就可以编写更为灵活且可重复使用的代码了。
但你也看到,使用匿名类来表示不同的行为并不令人满意:代码十分啰嗦,这会影响程序员在实践中使用行为参数化的积极性。在本章中,我们会教给你Java 8中解决这个问题的新工具——Lambda表达式。它可以让你很简洁地表示一个行为或传递代码。现在你可以把Lambda 表达式看作匿名功能,它基本上就是没有声明名称的方法,但和匿名类一样,它也可以作为参数传递给一个方法。
我们会展示如何构建Lambda,它的使用场合,以及如何利用它使代码更简洁。我们还会介绍一些新的东西,如类型推断和Java 8 API中重要的新接口。最后,我们将介绍方法引用(method reference),这是一个常常和Lambda表达式联用的有用的新功能。
本章的行文思想就是教你如何一步一步地写出更简洁、更灵活的代码。在本章结束时,我们会把所有教过的概念融合在一个具体的例子里:我们会用Lambda表达式和方法引用逐步改进第2 章中的排序例子,使之更加简明易读。这一章很重要,而且你将在本书中大量使用Lambda。
本书PDF电子版现在可以免费获取,私信我“资料”即可免费获取!
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。