æç¨
åºç¡
- å®è£
- ä»ç»
- Vue å®ä¾
- 模æ¿è¯æ³
- 计ç®å±æ§å侦å¬å¨
- Class ä¸ Style ç»å®
- æ¡ä»¶æ¸²æ
- å表渲æ
- äºä»¶å¤ç
- 表åè¾å ¥ç»å®
- ç»ä»¶åºç¡
æ·±å ¥äºè§£ç»ä»¶
- ç»ä»¶æ³¨å
- Prop
- èªå®ä¹äºä»¶
- æ槽
- å¨æç»ä»¶ & å¼æ¥ç»ä»¶
- å¤çè¾¹çæ åµ
è¿æ¸¡ & å¨ç»
- è¿å ¥/ç¦»å¼ & å表è¿æ¸¡
- ç¶æè¿æ¸¡
å¯å¤ç¨æ§ & ç»å
- æ··å ¥
- èªå®ä¹æ令
- 渲æå½æ° & JSX
- æ件
- è¿æ»¤å¨
å·¥å ·
- åæ件ç»ä»¶
- æµè¯
- TypeScript æ¯æ
- ç产ç¯å¢é¨ç½²
è§æ¨¡å
- è·¯ç±
- ç¶æ管ç
- æå¡ç«¯æ¸²æ
- å®å ¨
å å¨
- æ·±å ¥ååºå¼åç
è¿ç§»
- ä» Vue 1.x è¿ç§»
- ä» Vue Router 0.7.x è¿ç§»
- ä» Vuex 0.6.x è¿ç§»å° 1.0
- è¿ç§»è³ Vue 2.7
æ´å¤
- 对æ¯å ¶ä»æ¡æ¶
- å å ¥ Vue.js 社åº
- 认è¯å¢é
æ¨æ£å¨æµè§çæ¯ Vue 2.x çææ¡£ãVue 3 çææ¡£å¨è¿éã
èªå®ä¹æ令
ç®ä»
é¤äºæ ¸å¿åè½é»è®¤å
ç½®çæ令 (v-model
å v-show
)ï¼Vue ä¹å
许注åèªå®ä¹æ令ã注æï¼å¨ Vue2.0 ä¸ï¼ä»£ç å¤ç¨åæ½è±¡ç主è¦å½¢å¼æ¯ç»ä»¶ãç¶èï¼æçæ
åµä¸ï¼ä½ ä»ç¶éè¦å¯¹æ®é DOM å
ç´ è¿è¡åºå±æä½ï¼è¿æ¶åå°±ä¼ç¨å°èªå®ä¹æ令ã举个èç¦è¾å
¥æ¡çä¾åï¼å¦ä¸ï¼
å½é¡µé¢å è½½æ¶ï¼è¯¥å
ç´ å°è·å¾ç¦ç¹ (注æï¼autofocus
å¨ç§»å¨ç Safari ä¸ä¸å·¥ä½)ãäºå®ä¸ï¼åªè¦ä½ å¨æå¼è¿ä¸ªé¡µé¢åè¿æ²¡ç¹å»è¿ä»»ä½å
容ï¼è¿ä¸ªè¾å
¥æ¡å°±åºå½è¿æ¯å¤äºèç¦ç¶æãç°å¨è®©æ们ç¨æ令æ¥å®ç°è¿ä¸ªåè½ï¼
|
å¦ææ³æ³¨åå±é¨æ令ï¼ç»ä»¶ä¸ä¹æ¥åä¸ä¸ª directives
çé项ï¼
|
ç¶åä½ å¯ä»¥å¨æ¨¡æ¿ä¸ä»»ä½å
ç´ ä¸ä½¿ç¨æ°ç v-focus
propertyï¼å¦ä¸ï¼
|
é©åå½æ°
ä¸ä¸ªæ令å®ä¹å¯¹è±¡å¯ä»¥æä¾å¦ä¸å 个é©åå½æ° (å为å¯é)ï¼
bind
ï¼åªè°ç¨ä¸æ¬¡ï¼æ令第ä¸æ¬¡ç»å®å°å ç´ æ¶è°ç¨ãå¨è¿éå¯ä»¥è¿è¡ä¸æ¬¡æ§çåå§å设置ãinserted
ï¼è¢«ç»å®å ç´ æå ¥ç¶èç¹æ¶è°ç¨ (ä» ä¿è¯ç¶èç¹åå¨ï¼ä½ä¸ä¸å®å·²è¢«æå ¥ææ¡£ä¸)ãupdate
ï¼æå¨ç»ä»¶ç VNode æ´æ°æ¶è°ç¨ï¼ä½æ¯å¯è½åçå¨å ¶å VNode æ´æ°ä¹åãæ令çå¼å¯è½åçäºæ¹åï¼ä¹å¯è½æ²¡æãä½æ¯ä½ å¯ä»¥éè¿æ¯è¾æ´æ°ååçå¼æ¥å¿½ç¥ä¸å¿ è¦ç模æ¿æ´æ° (详ç»çé©åå½æ°åæ°è§ä¸)ã
æ们ä¼å¨ç¨å讨论渲æå½æ°æ¶ä»ç»æ´å¤ VNodes çç»èã
componentUpdated
ï¼æ令æå¨ç»ä»¶ç VNode åå ¶å VNode å ¨é¨æ´æ°åè°ç¨ãunbind
ï¼åªè°ç¨ä¸æ¬¡ï¼æ令ä¸å ç´ è§£ç»æ¶è°ç¨ã
æ¥ä¸æ¥æ们æ¥çä¸ä¸é©åå½æ°çåæ° (å³ el
ãbinding
ãvnode
å oldVnode
)ã
é©åå½æ°åæ°
æ令é©åå½æ°ä¼è¢«ä¼ å ¥ä»¥ä¸åæ°ï¼
el
ï¼æ令æç»å®çå ç´ ï¼å¯ä»¥ç¨æ¥ç´æ¥æä½ DOMãbinding
ï¼ä¸ä¸ªå¯¹è±¡ï¼å å«ä»¥ä¸ propertyï¼name
ï¼æ令åï¼ä¸å æ¬v-
åç¼ãvalue
ï¼æ令çç»å®å¼ï¼ä¾å¦ï¼v-my-directive="1 + 1"
ä¸ï¼ç»å®å¼ä¸º2
ãoldValue
ï¼æ令ç»å®çåä¸ä¸ªå¼ï¼ä» å¨update
åcomponentUpdated
é©åä¸å¯ç¨ãæ 论å¼æ¯å¦æ¹åé½å¯ç¨ãexpression
ï¼å符串形å¼çæ令表达å¼ãä¾å¦v-my-directive="1 + 1"
ä¸ï¼è¡¨è¾¾å¼ä¸º"1 + 1"
ãarg
ï¼ä¼ ç»æ令çåæ°ï¼å¯éãä¾å¦v-my-directive:foo
ä¸ï¼åæ°ä¸º"foo"
ãmodifiers
ï¼ä¸ä¸ªå å«ä¿®é¥°ç¬¦ç对象ãä¾å¦ï¼v-my-directive.foo.bar
ä¸ï¼ä¿®é¥°ç¬¦å¯¹è±¡ä¸º{ foo: true, bar: true }
ã
vnode
ï¼Vue ç¼è¯çæçèæèç¹ãç§»æ¥ VNode API æ¥äºè§£æ´å¤è¯¦æ ãoldVnode
ï¼ä¸ä¸ä¸ªèæèç¹ï¼ä» å¨update
åcomponentUpdated
é©åä¸å¯ç¨ã
é¤äº el
ä¹å¤ï¼å
¶å®åæ°é½åºè¯¥æ¯åªè¯»çï¼åå¿è¿è¡ä¿®æ¹ãå¦æéè¦å¨é©åä¹é´å
±äº«æ°æ®ï¼å»ºè®®éè¿å
ç´ ç dataset
æ¥è¿è¡ã
è¿æ¯ä¸ä¸ªä½¿ç¨äºè¿äº property çèªå®ä¹é©åæ ·ä¾ï¼
|
|
å¨ææ令åæ°
æ令çåæ°å¯ä»¥æ¯å¨æçãä¾å¦ï¼å¨ v-mydirective:[argument]="value"
ä¸ï¼argument
åæ°å¯ä»¥æ ¹æ®ç»ä»¶å®ä¾æ°æ®è¿è¡æ´æ°ï¼è¿ä½¿å¾èªå®ä¹æ令å¯ä»¥å¨åºç¨ä¸è¢«çµæ´»ä½¿ç¨ã
ä¾å¦ä½ æ³è¦å建ä¸ä¸ªèªå®ä¹æ令ï¼ç¨æ¥éè¿åºå®å¸å±å°å ç´ åºå®å¨é¡µé¢ä¸ãæ们å¯ä»¥åè¿æ ·å建ä¸ä¸ªéè¿æ令å¼æ¥æ´æ°ç«ç´ä½ç½®åç´ å¼çèªå®ä¹æ令ï¼
|
|
è¿ä¼æ该å ç´ åºå®å¨è·ç¦»é¡µé¢é¡¶é¨ 200 åç´ çä½ç½®ãä½å¦æåºæ¯æ¯æ们éè¦æå ç´ åºå®å¨å·¦ä¾§èä¸æ¯é¡¶é¨å该æä¹åå¢ï¼è¿æ¶ä½¿ç¨å¨æåæ°å°±å¯ä»¥é常æ¹ä¾¿å°æ ¹æ®æ¯ä¸ªç»ä»¶å®ä¾æ¥è¿è¡æ´æ°ã
|
|
ç»æï¼
è¿æ ·è¿ä¸ªèªå®ä¹æ令ç°å¨ççµæ´»æ§å°±è¶³ä»¥æ¯æä¸äºä¸åçç¨ä¾äºã
å½æ°ç®å
å¨å¾å¤æ¶åï¼ä½ å¯è½æ³å¨ bind
å update
æ¶è§¦åç¸åè¡ä¸ºï¼èä¸å
³å¿å
¶å®çé©åãæ¯å¦è¿æ ·åï¼
|
对象åé¢é
å¦ææ令éè¦å¤ä¸ªå¼ï¼å¯ä»¥ä¼ å ¥ä¸ä¸ª JavaScript 对象åé¢éãè®°ä½ï¼æ令å½æ°è½å¤æ¥åææåæ³ç JavaScript 表达å¼ã
|
|