@å¦ä¹ vueçæ»ç»
åºç¡ç¥è¯ç¹
package.json æ¯é¡¹ç®ç说æä¹¦ï¼å ¶ä¸ä¸è½½çæä»¶æ¯é¡¹ç®ä¾èµï¼å ¶ä¸çdependenciesæ¯é¡¹ç®è¿è¡æ¶çä¾èµ ï¼devDependenciesæ¯å¼åæ¶ä¾èµï¼
srcæ¯æ£å¼å代ç çå°æ¹ï¼å ¥å£æä»¶æ¯main.jsï¼éè¾¹æå¼å ¥çvueçåvueå®ä¾
.babelrcä¸"browsers": ["> 1%", âlast 2 versionsâ, ânot ie <= 8â]è¦æ±æµè§å¨å¤§äº1%ï¼æ¯æè¿çä¸¤ä¸ªçæ¬ï¼ä¸æ¯ieæµè§å¨å°äºçäº8
ç»ä»¶åå¼åçä¼ç¹ï¼ä»£ç å¯ä»¥å¤ç¨ï¼éä½ä»£ç çè¦åæ§
1.vueæ¯ä¸ä¸ªæé 彿°ï¼å¯ä»¥new vueï¼ï¼æé åºvueçä¸ä¸ªå®ä¾ï¼è¿ä¸ªå®ä¾ä¸»è¦æ¯æ¥æ§å¶html代ç ï¼vueå®ä¾ä¼æå®æ§å¶çhtml代ç çæä¸ä¸ªhtml模æ¿
2.vueç{{ }}éè¾¹çå 容å¯ä»¥ç解为æ¯js代ç ï¼å 为éè¾¹æ¾çé常æ¯åéä¹å¯ä»¥æ¾ä¸äºç®åçå符串模æ¿ï¼å¦ï¼name+â123â ï¼ä¹å¯ä»¥è°ç¨å½æ°ï¼ä¸ç®è¿ç®ç¬¦çï¼
ä½ä¸è½å夿çjs代ç ï¼å¦ï¼for ifç
3.v-bindæä»¤ï¼v-bindç¨æ¥ç»å®æä¸ªå±æ§ï¼å¦ï¼ç¾åº¦ link为dataéå®ä¹çåéï¼æå¦ï¼ãç®å为 ï¼href=âlinkâ
4.v-onceæä»¤ï¼åªä¸ç¬¬ä¸æ¬¡æ¸²æåéçå¼æå ³ï¼å¦ï¼
{{ name }}
è¿ä¸ªæä»¤ç¨äºnameç弿夿¬¡æ¹åçæ¶å
5.v-htmlæä»¤ï¼å¦æåééåçæ¯ä¸ä¸ªæ ç¾ï¼å¦ï¼htmlï¼' ç¾åº¦ â , åä¸è¾¹ä¸è½{{ html }}è¿æ ·ç¨ï¼ä¼ç´æ¥ææ ç¾ä¹æ¸²æåºæ¥
ä¸è¾¹åºè¯¥åæ
ä½è¿æ ·ä¼æå®å ¨æ§çé®é¢
6.v-onæä»¤ï¼ç¨äºç»å®äºä»¶ï¼å¦ï¼å¢å å ¶ä¸å½addè¿ä¸ªå½æ°æ²¡æåæ°ï¼é£ä¹å¨è°ç¨çæ¶åä¸ç¨åï¼ï¼ï¼å½åäºä»¶å¯¹è±¡çæ¶å
ï¼å°±æ¯ç¬¬ä¸ä¸ªå鿝eventæ¶ï¼ï¼è°ç¨æ¶ä¸ç¨åï¼ï¼ï¼å¦æè¦ååæ°è¿è¦åäºä»¶å¯¹è±¡çæ¶åï¼é£ä¹åæ°éå¯ä»¥åæ
表示第ä¸ä¸ªåæ°æ¯20ï¼ç¬¬äºä¸ªå¯¹è±¡æ¯äºä»¶å¯¹è±¡ã ç®å为@click=âadd()â
7.äºä»¶ä¿®é¥°ç¬¦ï¼.stop 黿¢äºä»¶å泡ï¼
è·åå½åçxyåæ
8.æé®ä¿®é¥°ç¬¦ï¼.enter .space 彿enteré®æç©ºæ ¼é®çæ¶åå¨è°ç¨å½æ°ï¼å¦ï¼
{{ input }}
è¿æ ·påinputæ ç¾çæ°æ®å°±è¿è¡äºååç»å®ï¼,è´è´£çå¬ç¨æ·çè¾å ¥äºä»¶ä»¥æ´æ°æ°æ®ï¼å¹¶å¯¹ä¸äºæç«¯åºæ¯è¿è¡ä¸äºç¹æ®å¤çãv-model ä¼å¿½ç¥ææè¡¨åå ç´ ç valueãcheckedãselected ç¹æ§çåå§å¼èæ»æ¯å° Vue å®ä¾çæ°æ®ä½ä¸ºæ°æ®æ¥æºã 10.计ç®å±æ§ï¼è®¡ç®å±æ§ä¸å½æ°çåºå«ï¼1ï¼è®¡ç®å±æ§å¨è°ç¨æ¶ä¸ç¨åææ§è¡æ¨¡å¼ 2ï¼å½æ°çç¹æ§ï¼å½ä»»æä¸ä¸ªdomèç¹åçååï¼ä¸ç®¡ä¸é£äºäºä»¶ç¸å ³ä¸ç¸å ³é½ä¼ä»å¤´æ§è¡ä¸éï¼ è计ç®å±æ§ä¸ä¼ï¼å®ä¼åæé¡µé¢åçååä¸é£äºå½æ°ç¸å ³ï¼ä»èæ§è¡ç¸å ³å½æ°ã计ç®å±æ§ç¨äºç嬿°æ®ï¼å½æ°æ®åçååæ¶æ§è¡æä½ï¼è®¡ç®å±æ§æ¯åºäºå®ä»¬çä¾èµè¿è¡ç¼åç 3ï¼è®¡ç®å±æ§åå¨computedï¼{ }éï¼å½æ°åå¨methodsï¼{ }é 11.å¦ä¸ç§ç嬿°æ®çæ¹å¼ï¼watch æ ¼å¼ï¼ watchï¼{ è¦çå¬çæ°æ®ï¼functionï¼å½æ°ä¸ç第ä¸ä¸ªåæ°æ¯è¦ç嬿°æ®çææ°å¼ï¼{ é»è¾æä½ } }
计ç®å±æ§ä¸watchçåºå«ï¼
1ï¼è®¡ç®å±æ§é½ä¼æè¿åå¼ï¼èwatch没æ
2ï¼è®¡ç®å±æ§éè¾¹çä»£ç æ¯åæ¥ç代ç ï¼èwatchä¸å¯ä»¥å弿¥æä½ï¼å½æ°æ®åçååæ¶ååå°è¯·æ±æ°æ®åªè½ç¨watchï¼å 为æ¯å¼æ¥ç
12.å¨ææ·»å å 餿 ·å¼ï¼
éè¿v-bindæ¥æ¹åæ ç¾éç屿§ï¼å¦ï¼<div class=âshapeâ @click=âisCircle=!isCircleâ v-bind:class="{ circle:isCircle,blue:!isCircle }">
妿ç»å®çclasså¤ªå¤æ¶ï¼å¯ä»¥æè¿äºclassåå°è®¡ç®å±æ§éï¼å¦ï¼
computed:{
divClass function (){
return {
circle:isCircle,
blue:!isCircle
}
}
}
è¿æ ·ä¸è¾¹è°ç¨çæ¶ååæ<div class=âshapeâ @click=âisCircle=!isCircleâ v-bind:class=âdivClassâ>
13.classç´æ¥ç»å®ä¸ä¸ªç±»åï¼
è¿ä¸¤ç§æ·»å ç±»çæ¹å¼å¯ä»¥ç»å使ç¨ï¼<div class=âshapeâ @click=âisCircle=!isCircleâ v-bind:class=" [ color,{ circle:isCircle,blue:!isCircle } ] "
14.卿æä½style
15.æ¡ä»¶æ¸²æï¼v-if æ¯ç¨äºæ ¹æ®æ¡ä»¶å±ç¤ºå ç´ çé项 åå ¶ä»æä»¤ä¸æ ·å卿 ç¾éè¾¹ï¼å¦æv-ifåè¾¹çæ¡ä»¶æ¯trueï¼åè¿æ¡è¯å¥æ¾ç¤ºï¼å¦æä¸ºfalseï¼åè¿æ¡è¯å¥å°±ä¼æ¶å¤±ï¼ï¼æv-if v-else-if v-else å¦ï¼
对ä¸èµ·ï¼å·²ç»æ²¡è´§äº
妿æ³è®©ä¸¤ä¸ªæ¡ä»¶è¯å¥åæ¶æ¾ç¤ºæéèå¯ä»¥ç¨è¿ä¸ªæ ç¾ 16.v-show: ç¨æ³ä¸v-if䏿 ·ï¼åªä¸è¿v-showçéèæ¯display:noneçè¿ç§æ¹å¼çéè 17.å表渲æï¼v-for 1) å¦ä½å»å¾ªç¯æ°ç»ï¼
- {{ item }}
è¿æ ·æ¸²æåºæ¥æå 个item就伿¸²æå 个li 2) å¦ä½å»å¾ªç¯æ°ç»éç对象ï¼
- {{ item.name }} {{ item.rate }} {{ index }}
data:{ items:[ { name:"æä¸æ¯è¯ç¥"ï¼ rateï¼9.8 }ï¼ { name:"ä¸åºå¥½æ"ï¼ rateï¼8.0 } ] } 3) å¦ä½å»å¾ªç¯ä¸ä¸ªå¯¹è±¡ï¼
{{ v }} {{ prop }} {{ index }}
data:{ person:{ name:'tianlei', age:18 } } 4) å表渲æä¸å¸¸éå°çé®é¢ï¼ aï¼æ¯å¦ç¹å»æ¶æ¹åä¸ä¸ªå表å 容
-
è·¯ç±ä¸httpï¼
a): è·¯ç±ä¸aæ ç¾çåºå«ä¸èç³»ï¼
è·¯ç±ä¸aæ ç¾é½è½å®ç°é¡µé¢ç跳转ï¼ä½è·¯ç±çæ§è½æ´å¥½ï¼ç¹å»aæ ç¾å¾å¤æ¬¡é¡µé¢ä¼ä¸ç´è¯·æ±ä¸ç´å·æ°ï¼èç¹å»è·¯ç±åä¸ä¼å®ç°é¡µé¢ç请æ±åå·æ°ï¼ç´æ¥å°å¦ä¸ä¸ªé¡µé¢
b): å¦ä½ä¸è½½å¹¶é 置路ç±ï¼
å½ä»¤è¡åä¸ npm install vue-router --save-d å¯ä»¥å¨æ¬å°å®è£ è·¯ç±
ç¶åå¨main.jséæè½½ä¸vue-routerï¼ import VueRouter from âvue-routerâ Vue.use(VueRouter)
é 置路ç±ï¼
//é 置路ç±
const routes=[
{
path: â/â, component: Home
},{
path:â/meunâ,component:Meun
}
]
const router = new VueRouter({
routes,
mode:âhistoryâ
})
new Vue({
router,
render: h => h(App)
}).$mount(â#appâ)
c): router-viewæ ç¾ä¸è·¯å¾ä¸ºâ \ 'çå ³ç³»
å½å¨æ ¹ç»ä»¶ä¸å±ç¤ºè·¯å¾ä¸ºé»è®¤è·¯å¾çç»ä»¶æ¶ï¼å°±éè¦æ ç¾ï¼è¿ä¸ªæ ç¾å°±è¡¨ç¤ºé»è®¤ç»ä»¶çå 容ï¼router-viewä¼å±ç¤ºrouter-linkçå 容
d): ææ ·å¨ä»»æä¸ä¸ªç»ä»¶ä¸ä½¿ç¨httpåè®®ï¼
å®è£ resource å¨å½ä»¤è¡ä¸è¾å ¥ï¼npm install vue-resource --save-d
å¨main.jsä¸è¾å ¥ import VueResource from â vue-resource â Vue.use( VueResoure )
ç¶å卿³è¦ä½¿ç¨httpåè®®çç»ä»¶ä¸åä¸ï¼
created (){
this.$http.get( " httpåè®®è·¯å¾ " ).then( ( data )=>{ //妿è°ç¨æåï¼èµ°thenï¼data表示getéçhttpè·¯å¾
è¦åçé»è¾
})
}
19.Vueä¸éè¦æ³¨æçå°ç»èï¼
a) is屿§çç¨æ³ï¼å½ç¨table tbady tr td çä¸è¿ä¸²çæ ç¾æ¶ï¼å¦æætræ ç¾å½åä¸ä¸ªå±æ§æ¯é误çï¼å¯ä»¥ç¨ä»£æ¿ï¼ï¼è¿æ ·çæ ç¾è¿æul li select optionç
b) è¿ä¸ä¸ªç»ä»¶ä¸åå¦ä¸ä¸ªç»ä»¶çæ¶åï¼dataç¨å½æ°è¿å对象ç形弿¥åï¼è¿æ ·å¯ä»¥ä½¿æ¯ä¸ä¸ªå¼ç¨é½æèªå·±çæ°æ®ï¼ä¸ä¼å ±ç¨ã
c) vueä¸ä¹å¯ä»¥è·ådomèç¹ï¼å¨æ ç¾æç»ä»¶ä¸åref=ânameâ è·åçæ¶åç¨this.$refs.nameæ¥è·åã
ç»ä»¶
ç»å®bus
å¨srcæä»¶å¤¹ä¸æ°å»ºä¸ä¸ªpluginçæä»¶å¤¹ï¼é颿°å»ºä¸ä¸ªbus.jsçæä»¶
function plugin (Vue, optioins) {
window.bus = new Vue();
Vue.prototype.bus = window.bus;
};
export default {
install: plugin
};
å¨main.jsä¸å
import bus from â./plugin/busâ
Vue.use(bus)
buså°±ç»å®å®äº
èªå®ä¹äºä»¶ï¼ç»ä»¶é´çéä¿¡ï¼ ç¨äºå å¼ç»ä»¶åååç¶ç»ä»¶çä¼ å¼
妿ç»ä»¶Aéè¦ææ°æ®åéç»ç»ä»¶Bçè¯
å°±å¨ç»ä»¶Aåéä¸ä¸ªäºä»¶ä¾ï¼
this.bus. e m i t ( " èª å® ä¹ äº ä»¶ å ä¾ " , é è¦ å é ç æ° æ® ) ã ä¾ å¦ ï¼ t h i s . b u s . emit("èªå®ä¹äºä»¶åä¾", éè¦åéçæ°æ®)ãä¾å¦ï¼this.bus. emit("èªå®ä¹äºä»¶åä¾",éè¦åéçæ°æ®)ãä¾å¦ï¼this.bus.emit(âchangearrâ, [1,2,3,4]); //è¿éçäºä»¶åå§ç»ç¨å°å this.bus.KaTeX parse error: Expected '}', got 'EOF' at end of input: ⦠() { this.bus.on(âæ¥æ¶è¿æ¥çèªå®ä¹äºä»¶åâï¼ ï¼ä¸ä¸ªå½¢åï¼ =ã {
è¿ä¸ªå½¢åå°±æ¯ä¼ è¿æ¥çæ°æ®
})
}
ä¾å¦ï¼
mounted () {
this.bus.$on(âchangearrâ, (val) => { //è¯¥æ¹æ³ç¨äºå å¼ç»ä»¶ä¹é´çä¼ å¼ //v-on:changearr=âchange()â è¯¥æ¹æ³ç¨äºåç»ä»¶åç¶ç»ä»¶ä¼ å¼
ä½ å¯ä»¥æå°ä¸ä¸è¿ä¸ªvalæ¯ä¸æ¯ä¼ è¿æ¥çæ°æ®
console.log(val) // [1, 2, 3, 4]
})
}
äºï¼ vue çç¶ç»ä»¶ååç»ä»¶ä¼ å¼
æä¹åæè¿ä½ èªå®ä¹äºä»¶ï¼èªå®ä¹äºä»¶ç¨äºå å¼ç»ä»¶åååç¶ç»ä»¶çä¼ å¼ï¼ç¨æ³ç»ä½ åè¿ææ¡£äºï¼å¥½å¥½ç»ç»ã
æè¿æ¬¡æä½ ç¶ååç»å»ºçä¼ å¼
æå åä¸ä¸ªç¶ç»ä»¶
ææ¯ç¶ç»ä»¶
æå¨åä¸ä¸ªåç»ä»¶
ææ¯åç»ä»¶
- {{i.name}}
1.åç»ä»¶åç¶ç»ä»¶ä¼ å¼ç¨äºä»¶ä¼ å¼ï¼ï¼ç¶ç»ä»¶ååç»ä»¶ä¼ å¼ç¨å±æ§ä¼ å¼ï¼é½æ¯èªå®ä¹çï¼åå«ç¨$emitåpropsæ¥èªå®ä¹
2.ç»ä»¶ä¹é´ä¼ å¼åä¼ å¼ç¨çåºå«ï¼
å¼å æ¬ï¼string number booleanç
åºç¨å æ¬ï¼æ°ç»å对象
ä¾å¦ï¼ç¶ç»ä»¶ååç»ä»¶ä¼ äºä¸ä¸ªæ°ç»ï¼å½å¨åç»ä»¶ä¸å é¤ãæ·»å ææ¹åè¿ä¸ªæ°ç»çå 容æ¶ï¼å½å¨ç¶ç»ä»¶ä¸åºç¨å¤ä¸ªè¿ä¸ªåç»ä»¶æ¶ï¼å½æ¹åä¸ä¸ªåç»ä»¶çå 容æ¶ï¼ææåç»ä»¶çå 容
é½ä¼æ¹å
使¯å¨ç¶ç»ä»¶ååç»ä»¶ä¼ éä¸ä¸ªstringæè numberæ¶ï¼åä¸ä¼åçè¿ç§æ åµ