SlideShare a Scribd company logo
1 of 45
Vue.js
数据驱动 + 组件化的前端界面开发
• 安装指引
• Hello World
• 循环渲染
• 请求数据
• 条件渲染
• 事件处理
• 表单输入
• 过滤器
安装使用
• 在 <script> 标签引入 CDN 上的 Vue.js
• 使用 npm 安装 Vue
• Vue-cli 初始化
Hello World
表单输入
计算属性
循环渲染
请求数据
条件渲染
事件处理
事件修饰符
• .stop
• .prevent
• .capture
• .self
• .once
• .passive
过滤器
单文件组件
小结
核心思想:
• 数据驱动
• 组件化
数据驱动
Data-Driven
jQuery 处理问题的思路
• 给按钮或者文本框绑定监听事件
• 如果事件触发则开始判断,各个 DOM 对象的当前状
态(通常会借助 css class 来表示状态)
• 改变对应的 DOM 来实现想要达到的效果( tweet
box 下方显示还可以输入的字符数量,按钮是否可点
击)
Vue 代码处理问题的思路
• 创建一个状态变量用来追踪 textarea 中的字符的数
量
• 在 textarea 的 onChange 事件发生时改变其状态
• 自动重新渲染 tweet box ,显示还可以输入的字符的
数量
1. 在 Vue 中,只有当事件发生的时候, data 才发生改变,之后,
Vue 自动更新 UI
2. data 成为了事件以及 UI 之间过渡:
• 每个事件不需要担心哪一部分的 DOM 发生变化,他们只需要设置
data 就可以了
• <template></template> 里的代码只需要关心当前的 data 是什么
3. jQuery 没有中间的过渡层 data ,我们需要花费很大的精力来解决它
们之间相互的联系 ( 对于复杂的组件,建议使用 Vue 而不是 jQuery)
4. Vue 中把各个 UI 组件独立出来,有利于提高 UI 组件的复用率同时降
低各个 UI 组件的耦合
组件化
Component-Oriented
每一个应用界面都可以
看作是组件构成的
每一个组件都可以看做是一个
ViewModel
所以可以把界面抽象为
组件树
Q&A

More Related Content

What's hot

DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例Hui Liu
 
Nginx使用和模块开发
Nginx使用和模块开发Nginx使用和模块开发
Nginx使用和模块开发qingpiao1983
 
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysqlZoom Quiet
 
July.2011.w3ctech
July.2011.w3ctechJuly.2011.w3ctech
July.2011.w3ctechKai Cui
 
轻量分布式服务框架
轻量分布式服务框架轻量分布式服务框架
轻量分布式服务框架-Xing Xing
 
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战dennis zhuang
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and DesignHo Kim
 
YUIconf2010介绍
YUIconf2010介绍YUIconf2010介绍
YUIconf2010介绍ling yu
 
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生dennis zhuang
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介GO LL
 
Nodejs introduce - using Socket.io
Nodejs introduce - using Socket.ioNodejs introduce - using Socket.io
Nodejs introduce - using Socket.ioCaesar Chi
 
zookeeper-internals
zookeeper-internalszookeeper-internals
zookeeper-internalsLiu Shaohui
 
微服務資料管理的天堂路 - CQRS / Event Sourcing 的應用與實踐
微服務資料管理的天堂路 - CQRS / Event Sourcing 的應用與實踐微服務資料管理的天堂路 - CQRS / Event Sourcing 的應用與實踐
微服務資料管理的天堂路 - CQRS / Event Sourcing 的應用與實踐Andrew Wu
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程Simon Su
 

What's hot (18)

DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例
 
Nginx使用和模块开发
Nginx使用和模块开发Nginx使用和模块开发
Nginx使用和模块开发
 
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql
 
July.2011.w3ctech
July.2011.w3ctechJuly.2011.w3ctech
July.2011.w3ctech
 
轻量分布式服务框架
轻量分布式服务框架轻量分布式服务框架
轻量分布式服务框架
 
Vitualbox
VitualboxVitualbox
Vitualbox
 
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and Design
 
YUIconf2010介绍
YUIconf2010介绍YUIconf2010介绍
YUIconf2010介绍
 
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
 
Zoo keeper
Zoo keeperZoo keeper
Zoo keeper
 
Retina mac
Retina macRetina mac
Retina mac
 
Nodejs introduce - using Socket.io
Nodejs introduce - using Socket.ioNodejs introduce - using Socket.io
Nodejs introduce - using Socket.io
 
zookeeper-internals
zookeeper-internalszookeeper-internals
zookeeper-internals
 
微服務資料管理的天堂路 - CQRS / Event Sourcing 的應用與實踐
微服務資料管理的天堂路 - CQRS / Event Sourcing 的應用與實踐微服務資料管理的天堂路 - CQRS / Event Sourcing 的應用與實踐
微服務資料管理的天堂路 - CQRS / Event Sourcing 的應用與實踐
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程
 
HTML5 Samples
HTML5 SamplesHTML5 Samples
HTML5 Samples
 

Similar to Vue for beginners

Dev camps Windows Store App 市集應用程式最佳實踐
Dev camps   Windows Store App 市集應用程式最佳實踐Dev camps   Windows Store App 市集應用程式最佳實踐
Dev camps Windows Store App 市集應用程式最佳實踐Meng-Ru (Raymond) Tsai
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化kaven yan
 
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发leneli
 
Open cdn快速部署你的私有cdn集群
Open cdn快速部署你的私有cdn集群Open cdn快速部署你的私有cdn集群
Open cdn快速部署你的私有cdn集群
 
浏览器渲染与web前端开发
浏览器渲染与web前端开发浏览器渲染与web前端开发
浏览器渲染与web前端开发Duoyi Wu
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails serverMichael Chen
 
纵览Loadrunner核心功能
纵览Loadrunner核心功能纵览Loadrunner核心功能
纵览Loadrunner核心功能beiyu95
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍Tianwei Liu
 
Script with engine
Script with engineScript with engine
Script with engineWebrebuild
 
Yog Framework
Yog FrameworkYog Framework
Yog Frameworkfansekey
 
以Code igniter為基礎的網頁前端程式設計
以Code igniter為基礎的網頁前端程式設計以Code igniter為基礎的網頁前端程式設計
以Code igniter為基礎的網頁前端程式設計Amigo 陳兆祥
 
nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用dong yuwei
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 
前端框架發展
 前端框架發展 前端框架發展
前端框架發展Chi-wen Sun
 
基于Seajs的项目构建
基于Seajs的项目构建基于Seajs的项目构建
基于Seajs的项目构建Zhang Xiaoxue
 
Html5移动网站开发实践
Html5移动网站开发实践Html5移动网站开发实践
Html5移动网站开发实践Web Zhao
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器iflytek
 

Similar to Vue for beginners (20)

Dev camps Windows Store App 市集應用程式最佳實踐
Dev camps   Windows Store App 市集應用程式最佳實踐Dev camps   Windows Store App 市集應用程式最佳實踐
Dev camps Windows Store App 市集應用程式最佳實踐
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化
 
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发
 
Open cdn快速部署你的私有cdn集群
Open cdn快速部署你的私有cdn集群Open cdn快速部署你的私有cdn集群
Open cdn快速部署你的私有cdn集群
 
浏览器渲染与web前端开发
浏览器渲染与web前端开发浏览器渲染与web前端开发
浏览器渲染与web前端开发
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails server
 
Nova与虚拟机管理
Nova与虚拟机管理Nova与虚拟机管理
Nova与虚拟机管理
 
纵览Loadrunner核心功能
纵览Loadrunner核心功能纵览Loadrunner核心功能
纵览Loadrunner核心功能
 
Berserk js
Berserk jsBerserk js
Berserk js
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍
 
Script with engine
Script with engineScript with engine
Script with engine
 
Yog Framework
Yog FrameworkYog Framework
Yog Framework
 
以Code igniter為基礎的網頁前端程式設計
以Code igniter為基礎的網頁前端程式設計以Code igniter為基礎的網頁前端程式設計
以Code igniter為基礎的網頁前端程式設計
 
nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 
前端框架發展
 前端框架發展 前端框架發展
前端框架發展
 
基于Seajs的项目构建
基于Seajs的项目构建基于Seajs的项目构建
基于Seajs的项目构建
 
Html5移动网站开发实践
Html5移动网站开发实践Html5移动网站开发实践
Html5移动网站开发实践
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器
 

Vue for beginners