Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
jQuery vs AngularJS, dochi?
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
大澤木小鐵
December 05, 2013
Programming
3.1k
20
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
jQuery vs AngularJS, dochi?
大澤木小鐵
December 05, 2013
More Decks by 大澤木小鐵
See All by 大澤木小鐵
Effective Unit Testing
jaceju
3
660
JSConf Asia 2014 Sessions
jaceju
4
460
What happens in Laravel 4 bootstraping
jaceju
9
610
Deal with Laravel assets by Bower & Gulp
jaceju
30
2.1k
Leaning MVC By Example
jaceju
0
440
ng-conf_2014
jaceju
2
1.1k
The Power of JavaScript in JSConf.Asia 2013
jaceju
5
450
Begining Composer
jaceju
24
5.5k
Checkup your web pages
jaceju
44
3.2k
Other Decks in Programming
See All in Programming
Oxcを導入して開発体験が向上した話
yug1224
4
350
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
420
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
280
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
6k
Vite+ Unified Toolchain for the Web
naokihaba
0
370
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
270
エージェンティックRAGにAWSで入門しよう!
har1101
9
1.8k
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
1
580
Webフレームワークの ベンチマークについて
yusukebe
0
180
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
230
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
280
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
160
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
370
Unsuck your backbone
ammeep
672
58k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Rails Girls Zürich Keynote
gr2m
96
14k
The agentic SEO stack - context over prompts
schlessera
0
830
Deep Space Network (abreviated)
tonyrice
0
220
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Transcript
dochi? jQuery AngularJS vs
@jaceju ⼤大澤⽊木⼩小鐵
該學 jQuery 還是 AngularJS ?
選⼿手介紹
⽤用 CSS 選擇器語法來選擇想要的元素! 然後對這些元素進⾏行操作或綁定事件處理程式 jQuery <button class="post"></button>! ! <script>! $('.post').on('click',
function () {! ...! });! </script>
將 HTML 當成程式平台⽽而⾮非單純的⽂文件,! 將狀態和事件直接⽤用⾃自訂的 HTML 標籤或屬性來表達。 AngularJS <button ng-click="post('bob')"> </button>
Round 1
http://goo.gl/CAja7s 範例畫⾯面 客⼾戶說:⼀一定要給我⽀支援 IE 7 以上的版本
<!DOCTYPE html>! <html>! <body>! ! <ul>! <li><a href="#">Home</a></li>! <li><a href="#">Profile</a></li>!
<li><a href="#">Messages</a></li>! <li><a href="#">Settings</a></li>! </ul>! ! <p>Click Me</p>! ! </body>! </html>! HTML 結構 http://goo.gl/CAja7s
jQuery
程式運作⽅方式 1. 在 p 標籤上綁定⼀一個按下事件處理程式。 2. 當 p 標籤被按下時,切換選單元件的 上下滑特效。
程式碼 $(function () {! var $menu = $('body > ul');
// 找到選單! var $button = $('body > p'); // 找到按鈕! ! $button.on('click', function () {! $menu.slideToggle(); // 切換上下滑效果! });! });! http://goo.gl/N4nLtS
var $menu = $('#menu');! var $button = $('.button'); <ul id="menu">
... </ul>! <p class="button"> ... </p> 改⽤用 id / class
AngularJS
程式運作⽅方式 1. 利⽤用變數 isClosed 來記住 ⺫⽬目前選單呈現狀態。 2. 透過 ng-click 來綁定
p 標籤的事件, 以決定 isClosed 的值。 3. 透過 ng-class 與 isClosed 來決定要不要顯⽰示選單。
程式碼 <!DOCTYPE html>! <html>! <body ng-app ng-init="isClosed=true">! ! <ul class="closed"
ng-class="{ closed: isClosed }">! <li><a href="#">Home</a></li>! <li><a href="#">Profile</a></li>! <li><a href="#">Messages</a></li>! <li><a href="#">Settings</a></li>! </ul>! ! <p ng-click="isClosed = !isClosed">Click Me</p>! ! <script src="angular.min.js"></script>! </body>! </html>! http://goo.gl/Fjo52H
CSS3 transition ul { ...! overflow-y: hidden;! max-height: 500px;! transition-property:
all;! transition-duration: 1s;! }! ul.closed {! max-height: 0;! }! http://goo.gl/Fjo52H
等等, CSS3 ?
Can I use transition? http://goo.gl/FUAyDT
說好的 IE 7 呢?
jQuery AngularJS 勝 IE ⽀支援度
Round 2
http://goo.gl/wUhIim 範例畫⾯面
HTML 結構 <!DOCTYPE html>! <html>! <body>! ! <p>Current Value: <span>1</span></p>!
! <p><input type="range" value="1" ! min="1" max="10" /></p>! <p><input type="text" value="1" /></p>! ! </body>! </html>! http://goo.gl/wUhIim
AngularJS
程式運作⽅方式 1. 利⽤用變數 val 來記住⺫⽬目前的數值。 2. 透過 ng-bind 將 val
變數綁定⾄至 span 標籤顯⽰示。 3. 透過 ng-model 將 val 變數與 input / span 標籤做雙向資料綁定 (Two Way Data-Binding) 。
程式碼 http://goo.gl/Tbx6UD <!DOCTYPE html>! <html ng-app>! <body ng-init="val=1">! ! <p>Current
Value: <span ng-bind="val">1</span></p>! <p><input type="range" min="1" max="10"! ng-model="val" /></p>! <p><input type="text" ng-model="val" /></p>! ! <script src="angular.min.js"></script>! </body>! </html>!
jQuery
程式運作⽅方式 1. 利⽤用變數 val 來記住⺫⽬目前的數值。 2. 當操作 slider 元件時,透過 input
事件 來更新其他元件的內容或值。 3. 當操作 text 元件時,透過 keyup 事件 來更新其他元件的內容或值。
程式碼 http://goo.gl/nhwtyN (function () {! var val = 1;! var
$span = $('span').text(val);! var $slider = $('input[type=range]').val(val);! ! ! $slider.on('input', function () {! val = $(this).val(); // 更新 val 數值! $span.text(val); // 同步 $span 內容! ! });! ! ! ! ! ! ! })();
程式碼 (function () {! var val = 1;! var $span
= $('span').text(val);! var $slider = $('input[type=range]').val(val);! var $text = $('input[type=text]').val(val);! ! $slider.on('input', function () {! val = $(this).val(); // 更新 val 數值! $span.text(val); // 同步 $span 內容! $text.val(val); // 同步 $text 值! });! ! $text.on('keyup', function () {! val = $(this).val(); // 更新 val 數值! $span.text(val); // 同步 $span 內容! $slider.val(val); // 同步 $slider 值! });! })(); http://goo.gl/nhwtyN
val $span $text 程式碼⾏行數: 9
val $span $text $slider 程式碼⾏行數: 16
val $span $text new element $slider 程式碼⾏行數: 25
val $span $text new element $slider new element 程式碼⾏行數: 36
val $span $text new element $slider new element new element
程式碼⾏行數: 49
val $span $text new element $slider new element new element
程式碼⾏行數! ⼤大爆炸!!
jQuery AngularJS 勝 元件互動便利性
時間來不及 快點做結論
jQuery AngularJS 主要開發⽅方式 盡可能不修改 HTML 將⾴頁⾯面邏輯寫在 JS 中 HTML 為主,
JS 為輔 適⽤用場合 畫⾯面特效 互動表單 元素特效 透過 JavaScript 計算 CSS3 (或 jQuery-like API 輔助) 擴充機制 plugins directives IE ⽀支援度 IE6 以上 (1.x) IE8 以上
先學 j Query 然後依專案性質決定使⽤用哪⼀一個 還是要摻在⼀一起做成撒尿⽜牛丸也可以 再學 AngularJS