±à¼ÍƼö: |
±¾ÎÄÀ´×Ô¼òÊ飬±¾ÎÄÖ÷Òª½éÉÜVue.jsÖÐÊÓͼµ½Êý¾ÝµÄ°ó¶¨£¬Í¨¹ýÒ»¸öÁбíµÄÀý×ÓÀ´ÌåÑ飺
Ìõ¼þ¡¢Ñ»·Óëʼþ£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£ |
|
1. ÈÏʶVue.js
Vue.js£¨¶ÁÒô /vju?/£¬ÀàËÆÓÚview£©ÊÇÒ»Ì×¹¹½¨Óû§½çÃæµÄ½¥½øÊ½¿ò¼Ü¡£
Èç¹ûÄãÓÐreact»òÕßAngular¿ª·¢¾Ñ飬Äã¿Ï¶¨²»»á¶ÔVue.js¸Ðµ½Ì«¹ýİÉú¡£Vue.jsÊDzÈÔÚAngularºÍReact¼ç°òÉϵĺóÀ´Õߣ¬Ëü³ä·ÖÎüÊÕÁ˶þÕßµÄÓŵ㣬ÊÇMVVM¿ò¼ÜµÄ¼¯´ó³ÉÕß¡£ÎÒÃÇÖ»ÐèÒª»¨10·ÖÖÓдһµã´úÂ룬¾ÍÄÜ´ó¸Å¿ú¼ûVueµÄ±¾ÖÊ¡£
1.1 Êý¾Ý°ó¶¨
ËùÓеÄMVVM¿ò¼ÜÒª½â¾öµÄµÚÒ»¼þʶ¼ÊÇÊý¾Ý°ó¶¨¡£Ê×ÏÈÒª½«ModelµÄ±ä»¯äÖȾµ½ViewÖУ¬µ±ÓÐÓû§ÊäÈ뻹ÐèÒª°ÑÓû§µÄÐ޸ķ´Ó³µ½ModelÖС£ËùνµÄMVVM¾ÍÊÇÕâôÀ´µÄ¡£
<!DOCTYPE
html>
<html> <head> <title>Hello
Vue</title> <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head> <body> <div id="app">
{{ message }} </div> </body>
<script>
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue'
}
}) </script>
</html> |
ÔÚä¯ÀÀÆ÷´ò¿ªÕâ¸öHTMLÎļþºó£¬¿ÉÒÔ¿´µ½Ò³ÃæÉÏÏÔʾÁË¡°Hello Vue¡±×ÖÑù¡£ÎÒÃÇÔÚ¿ØÖÆÌ¨ÊäÈëapp.message
= 'hello world'²¢»Ø³µºó£¬·¢ÏÖÒ³ÃæÉϵÄÏûÏ¢Ò²±ä³ÉÁË¡°Hello World¡±¡£Äã»á·¢ÏÖÕâÒ»Çж¼ÊÇÏìӦʽµÄ£¡VueÔÚ±³ºóΪÎÒÃǸ㶨ÁËÊý¾Ýµ½ÊÓͼµÄ°ó¶¨£¬È»¶øÕâÒ»Çв¢Ã»ÓÐʲôºÚħ·¨£¬Õâ±³ºóµÄÔÀíÊÇObject.definePropertyºÍ¶ÔÏóµÄ´æÈ¡Æ÷ÊôÐÔ¡£
ÕâÊÇVue¹ÙÍøµÄÒ»ÕÅͼ£¬¸ß¶È¸ÅÀ¨ÁËÏìӦʽÊý¾Ý°ó¶¨µÄÔÀí¡£Ê¹ÓÃObject.defineProperty½«dataÖеÄËùÓÐÊôÐÔ¶¼×ªÎª´æÈ¡Æ÷ÊôÐÔ£¬È»ºóÔÚÊ×´ÎäÖȾ¹ý³ÌÖаÑÊôÐÔµÄÒÀÀµ¹ØÏµ¼Ç¼ÏÂÀ´²¢ÎªÕâ¸öVueʵÀýÌí¼Ó¹Û²ìÕß¡£µ±Êý¾Ý±ä»¯Ê±£¬setter»á֪ͨ¹Û²ìÕßÊý¾Ý±ä¶¯£¬×îºóÓɹ۲ìÕß´¥·¢renderº¯Êý½øÐÐÔÙ´ÎäÖȾ¡£
Àí½âÁËÕâ¸ö£¬¾Í²»ÄÑÀí½âVueÖÐÊÓͼµ½Êý¾ÝµÄ°ó¶¨ÁË£º
<!DOCTYPE
html>
<html> <head> <title>Hello
Vue</title> <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head> <body> <div id="app">
<p>Welcom {{ name }}!</p> <input
type="text" placeholder="Enter
your name" v-model="name">
</div> </body> <script>
var app = new Vue({
el: '#app',
data: {
name: ''
}
}) </script>
</html> |
1.2 Ìõ¼þ¡¢Ñ»·Óëʼþ
VueÖпÉÒԺܷ½±ãµØ½øÐÐÌõ¼þäÖȾ¡¢Ñ»·äÖȾºÍʼþ°ó¶¨¡£ÎÒÃǽ«Í¨¹ýÒ»¸öÁбíµÄÀý×ÓÀ´ÌåÑ飺
<!DOCTYPE
html>
<html> <head> <title>Hello
Vue</title> <script src="https://unpkg.com/vue/dist/vue.js"></script>
<style>
body, html {
margin: 0;
padding: 0;
}
body {
padding: 20px;
}
.students {
margin: 0;
padding: 0 0 20px 0;
list-style: none;
}
.students > li {
padding: 20px;
border-bottom: 1px solid #ddd;
} </style> </head> <body>
<div id="app"> <ul class="students">
<li v-for="student in students">
<h3 class="name">
{{student.name}} <span>{{student.age}}</span>
</h3> <p v-if="Number(student.age)
> 18">{{student.profile}}</p>
<button v-on:click="sayHi(student.name)">Say
hi</button> </li> </ul>
</div> </body> <script>
var students = [
{
name: 'Susan',
age: 17,
profile: 'Hi there I\'m a dog! Wang Wang!'
},
{
name: 'Amanda',
age: 21,
profile: 'Kneel Down, Human! Miao~'
},
{
name: 'Lench',
age: 25,
profile: '§Ò§à§Ö§Ó§à§Û §ß§Ñ§â§à§Õ!!'
}
]
new Vue({
el: '#app',
data: {
students
},
methods: {
sayHi (name) {
window.alert('Hi '+ name)
}
}
}) </script>
</html> |
1.3 ×é¼þϵͳ
ÎÒÃǽñÌìµÄÖØµãÊÇVueµÄ×é¼þϵͳ¡£ÔÚVueÖж¨ÒåºÍʹÓÃÒ»¸ö×é¼þ·Ç³£¼òµ¥£º
<!DOCTYPE
html>
<html> <head> <title>Hello
Vue</title> <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head> <body> <div id="app">
<my-component-a></my-component-a>
<my-component-b></my-component-b>
</div> </body> <script>
// register a global component
Vue.component('my-component-a', {
template: `<div>custom component A!</div>`
})
var app = new Vue({
el: '#app',
data: {},
components: {
'my-component-b': { // register a local component
template: '<div>custom component B!</div>'
}
}
})
console.log(myComponentA, app) </script>
</html> |
ÎÒÃÇÔÚÕâÀï·Ö±ð×¢²áÁËÒ»¸öÈ«¾Ö×é¼þºÍÒ»¸ö¾Ö²¿×é¼þ¡£Ëùνȫ¾Ö×é¼þ¾ÍÊÇÒ»µ©×¢²á£¬ËùÓеÄVueʵÀýÖж¼¿ÉÈÎÒâʹÓöø²»ÐèÒªÔÙµ¥¶ÀÉùÃ÷£»¾Ö²¿×é¼þÔòÊÇÖ»Óе±Ç°VueʵÀý¿ÉÒÔʹÓøÃ×é¼þ¡£
ÁíÍ⣬¼ÈÈ»ÊÇ×é¼þϵͳ£¬¿Ï¶¨»áÓÐÉúÃüÖÜÆÚ¡£ÔÚVueÖÐ×é¼þʵÖÊÉϾÍÊÇVueʵÀý£¬VueʵÀýµÄÉúÃüÖÜÆÚ¾ÍÊÇ×é¼þµÄÉúÃüÖÜÆÚ£º
ÔÚ½øÒ»²½Á˽âVueµÄ×é¼þϵͳ֮ǰ£¬ÓÐÒ»¸ö¸ÅÄîÎÒÃÇÐèÒªÏÈÀ´Í³Ò»£¬¾ÍÊÇ×é¼þ»¯¡£
2. ×é¼þ»¯
2.1 ×é¼þ»¯µÄ¶¨Òå
½«ÊµÏÖÒ³ÃæÄ³Ò»²¿·Ö¹¦ÄܵĽṹ¡¢ÑùʽºÍÂß¼·â×°³ÉΪһ¸öÕûÌ壬ʹÆä¸ßÄÚ¾Û£¬µÍñîºÏ£¬´ïµ½·ÖÖÎÓ븴ÓõÄÄ¿µÄ¡£
ÔÚǰ¶Ë·¶³ë£¬ÎÒÃÇ¿ÉÒÔÓÃÏÂÃæµÄÕâÕÅͼÀ´¼òµ¥µØÀí½â×é¼þ»¯£º
ÕâÑù¿´ÆðÀ´£¬×é¼þ»¯Ç°¶Ë¿ª·¢¾ÍÏñÔìÒ»Á¾³µ£¬ÎÒÃǽ«ÂÖ×Ó¡¢·¢¶¯»ú¡¢Ðü¹Ò¡¢³µÉí³µÃŵȵȸ÷²¿·Ö×é×°³ÉÒ»Á¾³µ£¬ÂÖ×Ó¡¢·¢¶¯»ú¾ÍÊÇ×é¼þ£¬³µ¾ÍÊÇ×îÖÕ²úÆ·¡£ÎÒÃǽ«Ò³Í·¡¢²à±ßÀ¸¡¢Ò³½Å¡¢ÄÚÈÝÇøµÈµÈ×é¼þÆ´×°ÆðÀ´×é³ÉÁËÎÒÃǵÄÒ³Ãæ¡£
2.2 ×é¼þ»¯µÄÒâÒå
·Ö¶øÖÎÖ®
ÔÚ̸µ½×é¼þ»¯µÄÒâÒåʱ£¬ºÜ¶àÈ˵Ŀ´·¨¶¼ÊÇ×é¼þ»¯µÄÄ¿µÄÊǸ´Ó㬵«ÎÒ²¢²»ÔÞͬÕâÒ»¿´·¨¡£
Á¼ºÃµØ×é¼þ»¯ÒÔºóµÄ×é¼þ£¬»á±íÏÖ³ö¸ßÄÚ¾ÛµÍñîºÏµÄÌØÕ÷£¬Õâ»á¸øÎÒÃÇ´øÀ´ºÃ´¦£º
×é¼þÖ®¼ä²»»áÏ໥ӰÏ죬ÄÜÓÐЧ¼õÉÙ³öÏÖÎÊÌâʱ¶¨Î»ºÍ½â¾öÎÊÌâµÄʱ¼ä
×é¼þ»¯³Ì¶È¸ßµÄÒ³Ãæ£¬¾ßÓÐÇåÎúµÄÒ³Ãæ×éÖ¯ºÍ¸ß¿É¶ÁÐÔµÄHTML½á¹¹´úÂ룬×é¼þÖ®¼äµÄ¹ØÏµÒ»Ä¿ÁËÈ»
×é¼þ»¯»áÇ¿ÆÈ¿ª·¢ÈËÔ±»®Çå¸÷¸ö×é¼þµÄ¹¦Äܱ߽磬ʹµÃ¿ª·¢³öµÄ¹¦Äܸü¼Ó½¡×³
ËùÒÔ·Ö¶øÖÎÖ®²ÅÊÇ×é¼þ»¯µÄÒâÒåËùÔÚ£¬¸´ÓÃÖ»ÊÇËüµÄ¸±×÷Óá£Í¬Ê±ÎÒÃÇ»¹ÓкܶàÆäËû·½Ê½¶¼¿ÉÒÔ×öµ½¸´Óã¬Õâ²¢²»ÊÇ×é¼þ»¯µÄרÀû¡£
2.3 ×é¼þ»¯ÓëÄ£¿é»¯
ÓÐʱºòÎÒÃÇ¿ÉÄÜ»á·Ö²»Çå×é¼þ»¯ºÍÄ£¿é»¯µÄÇø±ð¡£
Ä£¿é»¯ÊÇÒ»ÖÖ´¦Àí¸´ÔÓϵͳ·Ö½â³ÉΪ¸üºÃµÄ¿É¹ÜÀíÄ£¿éµÄ·½Ê½¡£Ëü¿ÉÒÔͨ¹ýÔÚ²»Í¬×é¼þÉ趨²»Í¬µÄ¹¦ÄÜ£¬°ÑÒ»¸öÎÊÌâ·Ö½â³É¶à¸öСµÄ¶ÀÁ¢¡¢»¥Ïà×÷ÓõÄ×é¼þ£¬À´´¦Àí¸´ÔÓ¡¢´óÐ͵ÄÈí¼þ¡£[^2]
Õâ¶Î»°³ö¡¶JavaÓ¦Óüܹ¹Éè¼Æ¡·£¬ËƺõÔÚºó¶ËÁìÓò£¬×é¼þ»¯ºÍÄ£¿é»¯ËµµÄÊÇͬһ¼þÊ¡£µ«ÔÚÎÒµÄÀí½âÖУ¬Ç°¶ËÁìÓòµÄ×é¼þ»¯ºÍÄ£¿é»¯ÊÇÁ½¸ö¸ÅÄî¡£ÏÈ˵½áÂÛ
×é¼þ»¯ÊÇ´Ó²úÆ·¹¦ÄܽǶȽøÐзָģ¿é»¯ÊÇ´Ó´úÂëʵÏֽǶȽøÐзָģ¿é»¯ÊÇ×é¼þ»¯µÄǰÌáºÍ»ù´¡¡£
µ±ÎÒÃǽ«Ò»¶Î´úÂëд³ÉÒ»¸öÄ£¿éµÄʱºò£¬ËüÓпÉÄÜÊÇÒ»¸öº¯Êý¡¢Ò»¸ö¶ÔÏó»òÕ߯äËûʲô×öÁËÒ»¼þµ¥Ò»ÊÂÇéµÄ¶«Î÷£¬ÎÒÃǽ«Ëü×ö³ÉÄ£¿éÊÇÒòΪËüÍê³ÉÁËÒ»¸öµ¥Ò»µÄ¹¦ÄÜ£¬²¢ÇÒÕâ¸ö¹¦ÄÜºÜ¶àµØ·½¶¼¿ÉÄÜÓõõ½¡£
¶øµ±Ò»¸ö×é¼þ±»´Ó²úÆ·ÖгéÏó³öÀ´£¬ËüÓÐʱºò¾ÍÖ»ÊÇÒ»¸öÄ£¿é£¬µ«ÓÐʱºòÈ´ÓÐÏà¶Ô¸´ÔÓµÄʵÏÖ£¬Ëü¾Í¿ÉÄÜ»áÓжà¸öÄ£¿é¡£
ÎÒÃÇ˵һ¸öÈÕÆÚÑ¡ÔñÆ÷ÊÇÒ»¸ö×é¼þ£¬µ«ÊµÏÖËüµÄʱºò£¬ÎÒÃÇ·Ö³ÉÁ˼ÆËãÄ£¿é¡¢äÖȾģ¿é¡¢Óû§ÊäÈëÏìӦģ¿éµÈµÈÄ£¿éÀ´ÊµÏÖ¡£Ò»¸öµ¥Ò»²úÆ·¹¦ÄܵÄʵÏÖ£¬¿ÉÄÜÊÇÓɶà¸öÄ£¿éÀ´ÊµÏֵġ£ÕâÑùÀí½âÆðÀ´£¬Æäʵ¿ÉÒÔ˵×é¼þ»¯ÊǸü´ÖÁ£¶ÈµÄÄ£¿é»¯£¬ËüÊÇÔÚ²úÆ·¹¦ÄÜÉϵÄÄ£¿é»¯¡£Ëµµ½ÕâÀÆäʵ²»ÄÑÀí½âΪʲôºó¶ËÁìÓò¿ÉÒÔÈÏΪ×é¼þ»¯ÓëÄ£¿é»¯ÊÇÒ»¼þÊÂÁË£¬ÕâÒ»µã½»¸ø´ó¼Ò˼¿¼¡£
2.4 ×é¼þ»¯ÔÚǰ¶Ë¹¤³ÌÖеÄλÖÃ
ÏÖÔÚÊÐÃæÉϵÄǰ¶ËÍŶӵÄÎ书µÈ¼¶´ó¸Å¿ÉÒÔÓÃÏÂÃæµÄÕâÕÅͼ¸ÅÀ¨£º

½ñÌìÎÒÃÇǰ¶ËÁìÓò×îÏȽøµÄ¹¤³Ì»¯Ë®Æ½£¬ÔÚ´«Í³µÄ×ÀÃæÈí¼þ¿ª·¢ÁìÓòÖÐÔç¾Í±»ÓÃÀÃÁË£¬ËùÒÔÕâ¶¼²»ÊÇʲôиÅÄî¡£µ«ÕâÒ²ÊÇÎÒ½ñÌìÒª·ÖÏíµÄÔÒò£¬¼ÈÈ»×é¼þ»¯Ôç¾Í´óÐÐÆäµÀÁË£¬ÄÇÎÒÃÇÊDz»ÊÇ¿ÉÒÔ̽ÌÖÒ»ÏÂÔÚ×é¼þ»¯¹ý³ÌÖÐÒªÃæ¶ÔµÄ³£¼ûÎÊÌ⣬ÒÔ¼°ÈçºÎÓÅÑŵØÔËÓÃVueÌṩµÄ×é¼þϵͳ½øÐÐ×é¼þ»¯¿ª·¢£¿
2.5 ǰ¶Ë×é¼þ»¯¿ª·¢µÄ³£¼ûÎÊÌâ×é¼þ¸ôÀ루ģ¿é»¯£©£º¼ÈȻҪ×é¼þ»¯£¬ÄÇôµÚÒ»¼þʾÍÊÇʵÏÖ×é¼þÖ®¼äµÄ¸ôÀ룬·ñÔòÄھۺ͵ÍñîºÏ¾ÍÎÞ´Ó̸Æð¡£×é¼þ¸ôÀëÆäʵ¾ÍÊÇÄ£¿é»¯£¬ÕâÀïÎÒÃÇÐèҪʵÏÖCSSÄ£¿é»¯ºÍJSÄ£¿é»¯¡£
×é¼þ¼äͨÐÅ£º¸ßÄÚ¾ÛµÍñîºÏ±ØÈ»»á´øÀ´Êý¾ÝÁ÷¶¯ÉϵıÚÀÝ£¬ËùÒÔ¸ôÀëºóµÄ×é¼þ¾ÍÒª½â¾ö×é¼þÖ®¼äµÄͨÐÅ´¦Àí¡£×é¼þͨÐÅ·ÖΪ¸¸×Ó×é¼þͨÐźͷǸ¸×Ó×é¼þͨÐÅ£¬Õâ¾ÍÉæ¼°µ½½Ó¿ÚÉè¼Æ¡¢Ê¼þ´¦ÀíºÍ״̬¹ÜÀíÈý¿éÄÚÈÝ¡£
ÄÚÈÝ·Ö·¢£ºÓÐʱºòÎÒÃÇÏ£Íû³éÏóµÄÊÇ×é¼þµÄijÖÖÐÐΪģʽ»ò½»»¥·½Ê½£¬¶ø×é¼þÖаüº¬µÄÄÚÈÝÈ´ÊÇÐèҪʹÓÃ×é¼þʱ²ÅÄÜÈ·¶¨£¬ÕâËäÈ»±¾ÖÊÉÏÒ²ÊÇ×é¼þ¼äͨÐÅ£¬µ«ËüµÄ·½Ê½¸üΪֱ¹ÛºÍ·½±ã¡£ÄÚÈÝ·Ö·¢Éæ¼°µ½¾ßÃû/·Ç¾ßÃûÄÚÈÝ·Ö·¢£¬×Ó×é¼þÏò·Ö·¢ÄÚÈÝ´«µÝÊý¾ÝµÈ¡£
µÝ¹éºÍÑ»·ÒýÓãº×é¼þ±¾ÖÊÉÏÒ²ÊÇÄ£¿é£¬ÄÇô¿Ï¶¨Ò²ÐèÒªÃæ¶ÔÄ£¿é»áÃæ¶ÔµÄÎÊÌ⣬µÝ¹éºÍÑ»·ÒýÓá£
°´Ðè¼ÓÔØ£º¼ÈÈ»ÒѾ×é¼þ»¯ÁË£¬ÄÇô¸ü½øÒ»²½Ó¦¸ÃʵÏÖ×é¼þµÄ°´Ðè¼ÓÔØ£¬´Ó¶øÌá¸ß²úÆ·ÌåÑé
3. VueÖеÄ×é¼þ»¯
VueÔÚ×é¼þ»¯ÉÏÕë¶ÔÉÏÊöÎÊÌâ¸ø³öÁ˺ÜÍêÕûµÄ½â¾ö·½°¸¡£
3.1 µ¥Îļþ×é¼þϵͳÓëCSS¾Ö²¿×÷ÓÃÓò
֮ǰÎÒÃÇÒѾ¿´µ½ÁËVueÖÐÊÇÈçºÎ×¢²áºÍʹÓÃÒ»¸ö×é¼þµÄ£¬È»¶øºÜ¶àʱºòÒ»¸ö×é¼þ±¾ÉíµÄ½á¹¹ºÍÂß¼¶¼Ô¶Ô¶±ÈÕâÒª¶àºÍ¸´ÔÓ£¬ÔÚÕâÖÖʱºò½ö½öÒÀ¿¿¶ÔÏóʵÀýÕâÖÖÐÎʽ£¬¾Í»á³öÏÖÖî¶à²»±ã£¬Í¬Ê±»ù±¾Ã»ÓÐʲôºÃµÄ°ì·¨À´ÊµÏÖCSS¸ôÀë¡£
<style lang="scss"
scoped>
.my-component {
color: red;
}
</style>
<template> <div class="my-component">
{{ message }} </div>
</template>
<script>
export default {
data () {
return {
message: 'This is my component!'
}
}
}
</script> |
Vue¸øÎÒÃÇÌṩÁ˵¥Îļþ×é¼þϵͳ£¬ÔÚÕâÌ×ϵͳÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃÒ»¸ö.vueºó׺µÄÎļþÀ´×éÖ¯×é¼þ£¬Õâ¸öÎļþÄڵĽṹÏñ¼«ÁËÆÕͨµÄhtmlÎļþ£ºÒ»¸ö±íʾ½á¹¹µÄtemplate±êÇ©£¬Ò»¸ö±àдÑùʽµÄstyle±êÇ©£¬ºÍÒ»¸ö±íʾÂß¼µÄscript±êÇ©¡£
ÔÚscriptÖÐÎÒÃǽ«×é¼þÊä³öΪһ¸öÄ£¿é£¬ÀûÓÃES6µÄModuleϵͳÀ´×÷Ϊ¸ôÀë×é¼þµÄ»ù´¡¡£Í¬Ê±ÎÒÏëÄãÒѾעÒâµ½ÁËstyle±êÇ©ÖеÄÕâ¸öscopedÊôÐÔ£¬ËüÒâζ×ŵ±Ç°×é¼þµÄÑùʽÊǾֲ¿µÄ£¬²»»áÓ°ÏìÆäËû×é¼þ¡£ÖÁÓÚÈçºÎʵÏֵģ¬·Ç³£¼òµ¥£º

WebpackµÄvue-style-load»áÔÚ×é¼þµÄÿ¸öÔªËØÉÏÌí¼ÓÒ»¸ödata-v-hashÊôÐÔ£¬È»ºóÔÚÆä¶ÔÓ¦µÄCSSÑ¡ÔñÆ÷ÉÏÌí¼ÓÕâ¸öÊôÐÔ×÷ΪѡÔñÆ÷£º

ÕâÑù¾Í½«×é¼þµÄÑùʽÓëÆäËû×é¼þ¸ôÀ뿪À´¡£
3.2 Vue×é¼þͨÐÅ
¿ÉÒÔÓÃÒ»ÕÅͼÀ´±íʾVue×é¼þϵͳÖи¸×Ó×é¼þµÄÊý¾ÝÁ÷¶¯£º

ʹÓÃpropsÏò×Ó×é¼þ´«µÝÊý¾Ý£¬Ê×ÏÈÒªÔÚ×Ó×é¼þÖж¨Òå×Ó×é¼þÄܽÓÊܵÄprops£¬È»ºóÔÚ¸¸×é¼þÖÐ×Ó×é¼þµÄ×Ô¶¨ÒåÔªËØÉϽ«Êý¾Ý´«µÝ¸øËü£º
ËäÈ»¹Ù·½²¢Ã»ÓÐÕâÑùµÄ˵·¨£¬µ«ÎÒÈÔ¾Éϰ¹ß½«×Ó×é¼þµÄprops½Ð×öËüµÄ½Ó¿Ú£¬Í¨¹ý×é¼þµÄ½Ó¿Ú£¬ÎÒÃÇ¿ÉÒÔ´ÓÍⲿÏò×é¼þ´«µÝÊý¾Ý¡£µ«ÊÇÈç¹û×é¼þÐèÒªÏòÍⲿ´«µÝÊý¾Ý£¬Ôò²»ÄÜͨ¹ýprops£¬ÕâÊÇVue
2Óëǰһ´úVueµÄÇø±ð¡£Vue 2ÖÐÇ¿µ÷¡°µ¥ÏîÊý¾ÝÁ÷¡±¡£¸úReactÖÐÌᳫµÄ¡°µ¥ÏîÊý¾ÝÁ÷¡±Ò»Ñù£¬Ëùν¡°µ¥ÏòÊý¾ÝÁ÷¡±£¬¼´ÊÇÊý¾ÝµÄ±ä¶¯Ö»ÄÜÓÉÍâÏòÄÚ´«µÝ£¬¶ø²»ÄÜÓÉÄÚÏòÍâ´«µÝ¡£×é¼þÖ»Äܽ«´Ó½Ó¿Ú´«µÝ½øÀ´µÄÊý¾Ý½øÐÐʹÓ㬲»ÄÜ¶ÔÆä½øÐÐÐ޸ģº
export default
{
props: ['message'],
mounted () {
this.message = 'local message' // Vue will warn
you if you try to modify props
}
} |
ÎÒÃÇΨһÄÜ×öµÄ£¬¾ÍÊÇÔÚ×Ó×é¼þÖн«propsÖд«µÝ½øÀ´µÄÊý¾Ý¸³Öµ¸ø×Ó×é¼þµÄ±¾µØdata±äÁ¿£¬È»ºóÔÚÐÞ¸ÄÁËÕâ¸ö±¾µØ±äÁ¿µÄʱºò£¬·¢ËÍʼþ֪ͨÍⲿ¡£¸¸×é¼þͨ¹ý¼àÌý×Ó×é¼þ·¢Ë͵ÄÕâ¸öʼþ£¬À´¾ö¶¨ÐèÒª×öʲô£º
<template>
<div> <input type="text"
v-model="localMessage" v-on:change="localMessageChange">
</div>
</template>
<script>
export default {
props: ['message'],
data () {
return {
localMessage: this.message
}
}
methods: {
localMessageChange () {
this.$emit('message-change', localMessage) //
notify parent component the change of message
}
}
}
</script> |
ÁíÍ⣬ʼþϵͳҲÄܹ»½â¾ö·Ç¸¸×Ó×é¼þµÄͨÐÅÎÊÌ⣬ÎÒÃÇʹÓÃÒ»¸ö¿ÕµÄVueʵÀýÀ´×÷ΪÖÐÑëʼþ×ÜÏߣ¬¾ÍÏñÕâÑù£º
let bus = new
Vue()
bus.$on('a-custom-event', function () {
// handle the event
})
bus.$emit('a-custom-event', 'some custom event
data') |
½²µ½ÕâÀï¾Í²»µÃ²»ÌáVuex¡£ºÍReduxÒ»Ñù£¬VuexÊÇVue¹Ù·½ÌṩµÄ״̬¹ÜÀí·½°¸¡£ÔںܶàÇé¿öÏ£¬Í¨¹ýpropsºÍʼþϵͳ¾Í»ù±¾ÄÜÂú×ãÎÒÃǵÄÐèÇ󣬵«µ±Çé¿ö¸´ÔÓµ½Ò»¶¨½×¶Î£¨±ÈÈçÔÛÃǵÄCube£©£¬ÉÏÊö¼òµ¥µÄÊֶξͻáÈÃ״̬¹ÜÀí±äµÃ²»¿É¿Ø£¬ÕâʱӦ¸Ã¿¼ÂÇʹÓÃVuex¡£
3.3 Ïò×Ó×é¼þ·Ö·¢ÄÚÈÝ
ÓÐʱºòÎÒÃÇÏ£Íû½«Ä³ÖÖ¡°ÈÝÆ÷¡±¹¦ÄܳéÏó³öÀ´³ÉΪ×é¼þ£¬ÕâʱËüÄÚ²¿µÄ¡°ÈÝÄÉÎ¾Í²»È·¶¨ÁË¡£ÎÒÃǵ±È»¿ÉÒÔÍêȫͨ¹ýpropsÏò×é¼þ´«µÝ´óÁ¿µÄHTML×Ö·û´®À´½â¾öÎÊÌ⣬µ«ÄÇÑùµÄд·¨ÏàÐÅû¼¸¸öÈË»áϲ»¶¡£HTMLÊÇÓÃÓÚ±íʾ¡°½á¹¹¡±µÄ£¬ÎÒÃÇ×ÔȻϣÍûËûÃdzöÏÖÔÚËûÃǸóöÏÖµÄλÖÃÉÏ¡£
VueÌṩÁËslot£¨²å²Û£©À´½â¾öÕâ¸öÎÊÌâ¡£¸¸×é¼þ¿ÉÒÔͨ¹ý×Ó×é¼þµÄslotÏò×Ó×é¼þÖÐ×¢ÈëHTML£º
<template>
<div class="modal"> <slot></slot>
<slot name="operations"></slot>
</div>
</template> |
<modal>
<p>Lorem ipsum dolor sit amet, consectetur
adipisicing elit.</p> <div slot="operations">
<button>cancel</button> <button>confirm</button>
</div>
</modal> |
ÔÚVue 2.1ÒÔǰ£¬×Ó×é¼þ¶ÔÓÚͨ¹ýslot´«µÝ½øÀ´µÄHTMLÊÇûÓÐÌ«¶àÊÖ¶ÎÈ¥¿ØÖƵ쬵«ÔÚ2.1°æ±¾ºó£¬VueÉõÖÁ»¹ÌṩÁËÒ»¸ö½Ð×ö¡°×÷ÓÃÓò²å²Û¡±µÄÌØÐÔ£¬×Ó×é¼þÏÖÔÚ¿ÉÒÔÏò±»×¢ÈëµÄHTMLÖд«µÝÊý¾ÝÁË£¡ÕâÒâζ×Å×Ó×é¼þµÃµ½Á˱»×¢ÈëHTMLµÄÊý¾Ý¿ØÖÆÈ¨£¬Ëü¿ÉÒÔ×Ô¶¨ÒåÿһÏîµÄչʾÐÐΪ£¬¸ü¿ÉÒÔ½«ÁбíÏîÖÐÄÇÐ©ÌØÊâÏîµÄ¹²Í¬ÐÐΪºÍÌØÕ÷Ò²³éÏóµ½×Ó×é¼þÄÚ²¿È¥£¬²»ÐèÒª¶îÍâÔÚ×Ó×é¼þÍⲿ½øÐд¦ÀíÁË£¬¾Ù¸ö²»ÊǺÜÇ¡µ±µÄÀý×Ó£º
<!--with out
scope slot-->
<my-list> <li v-for="item in
listItem">{{ item.url || item.text }}</li>
</my-list>
<!--with scope slot-->
<my-list :items="listItem">
<template slot="item" scope="props">
<li v-for="item in listItem">{{
props.text }}</li>
</template>
</my-list> |
Áбí×é¼þ¿ÉÒÔ½«¡°ÓÅÏÈÏÔʾurl¡±Õâ¸öÌØÐÔ£¬Í¨¹ý×÷ÓÃÓÚ²å²Û·â×°µ½×é¼þÄÚ²¿½øÐд¦Àí£¬²»ÔÙÐèÒªÍⲿȥ´¦ÀíÁË£º
<!--my-list
component-->
<ul> <slot
name="item"
v-for="item in items"
:text="item.url || item.text"></slot>
</ul> |
</ul>Õâ¸öʱºòÿһÏîչʾµÄÊý¾ÝÀ´Ô´¾Í²»ÊǸ¸×é¼þ¶øÊÇ×Ó×é¼þÁË¡£µ½ÕâÀïÎÒÃǻعýÍ·À´¿´Ò»¿´ÕâÈý¸öÌØÐÔ£ºprops¡¢slotºÍscope
slot¡£

`props`¡¢`slot`ºÍ`scope slot`¸÷×ԶԽṹºÍÊý¾Ý¶þÕß¿ØÖÆÈ¨µÄ»®·Ö
ʹÓÃpropsÀ´´«µÝÊý¾Ý£¬Êǽ«×Ó×é¼þÖеĽṹºÍÊý¾ÝµÄ¿ØÖÆÈ¨ÍêÈ«·â±Õµ½×Ó×é¼þÖУ¬¸¸×é¼þÖ»¹ÜÏòÆäÌṩÊý¾Ý£»Èç¹ûʹÓÃÁËslotÀ´·Ö·¢ÄÚÈÝ£¬ÔòÊǽ«×Ó×é¼þÖеÄijЩ½á¹¹ºÍÊý¾ÝµÄ¿ØÖÆÈ¨ÍêÈ«½»¸ø¸¸×é¼þ£¬¸¸×é¼þÒª½«Õⲿ·Ö½á¹¹ºÍÊý¾ÝäÖȾºÃÁ˷ŵ½×Ó×é¼þÖ¸¶¨µÄλÖÃÖУ»¶øscope
slotÔòÊǶþÕßµÄÖкͣ¬Ëü½«Êý¾Ý¿ØÖÆÈ¨½»¸øÁË×Ó×é¼þ£¬½«½á¹¹¿ØÖÆÈ¨½»¸øÁ˸¸×é¼þ¡£
3.4 Vue×é¼þµÄµÝ¹éÓëÑ»·ÒýÓÃ
´ó²¿·ÖÄ£¿éϵͳ¶¼»áÐèÒª´¦ÀíµÝ¹éºÍÑ»·ÒýÓÃÕâÁ½¸öÎÊÌâ¡£Vue×é¼þϵͳÖжÔÕâÁ½¸öÎÊÌâµÄ´¦Àí·Ç³£ÓÅÑÅ£¬Ê×ÏÈÊǵݹ飺
<template>
<ul class="admin-menu" :class="isTopLevel
? 'top-level' : ''"> <li v-for="item
in localItems">
{{ item.text }} <admin-menu v-if="item.children
&& item.children.length" :menu-items="item.children"></admin-menu>
</li> </ul>
</template>
|
export default
{
name: 'admin-menu',
data () {
return {
localItems: this.menuItems
}
},
props: ['meneItems']
}
|
ÕâÊÇÀ´×ÔÓÚAdmin-UIÖеÄ×é¼þadmin-menuÖеÄʵÏÖ£¬VueÖеÄ×é¼þÖ»Òª¸ø¶¨ÁËnameÊôÐÔ£¬¾ÍÄܹ»ºÜ×ÔÈ»µØ½øÐеݹéµ÷Óã¬Ö»ÒªÈ·±£µÝ¹éÓÐÍ£Ö¹Ìõ¼þ¼´¿É¡£ËùÒÔͨ³£µÝ¹é»áÓëv-if¡¢v-forµÈÅäºÏʹÓá£
×é¼þÒýÓÃ×ÔÉíΪµÝ¹éÒýÓã¬AB×é¼þ»¥ÏàÒýÓÃÔòΪѻ·ÒýÓá£Vue.component()·½·¨ÄÚ²¿×Ô¶¯´¦ÀíÁËÕâÖÖÑ»·ÒýÓã¬Äã²»½ö²»ÐèÒªµ£ÐÄÕâÊǸöÑ»·ÒýÓã¬ÄãÉõÖÁ¿ÉÒÔ½«Õâ¸öÌØÐÔ×÷ΪÓÅÊÆ½øÐгä·ÖÀûÓᣵ«µ±Ê¹ÓõÄÊÇES2015µÄÄ£¿éϵͳÀ´ÒýÈëµÄ×é¼þ£¬Webpack¾Í»á±¨Ñ»·ÒýÓôíÎóÁË¡£
ΪÁ˽âÊÍΪʲô»á±¨´í£¬¼òµ¥µÄ½«ÉÏÃæÁ½¸ö×é¼þ³ÆÎª A ºÍ B £¬Ä£¿éϵͳ¿´µ½ËüÐèÒª A £¬µ«ÊÇÊ×ÏÈ A
ÐèÒª B £¬µ«ÊÇ B ÐèÒª A£¬ ¶ø A ÐèÒª B£¬ÏÝÈëÁËÒ»¸öÎÞÏÞÑ»·£¬Òò´Ë²»ÖªµÀµ½µ×Ó¦¸ÃÏȽâ¾öÄĸö¡£Òª½â¾öÕâ¸öÎÊÌ⣬ÎÒÃÇÐèÒªÔÚÆäÖÐÒ»¸ö×é¼þÖУ¨±ÈÈç
A £©¸æËßÄ£¿é»¯¹ÜÀíϵͳ£¬¡°A ËäÈ»ÐèÒª B £¬µ«ÊDz»ÐèÒªÓÅÏȵ¼Èë B¡±
VueµÄ¹Ù·½½Ì³ÌÉÏ˵µÄ·Ç³£Çå³þ£¬Ö»ÒªÈÃÁ½¸ö×é¼þµÄµ¼È벻ͬʱ·¢Éú£¬¾Í¿ÉÒÔ¹æ±ÜÕâ¸öÎÊÌâ¡£ÄÇôÊÂÇé¾Í¼òµ¥ÁË£¬ÎÒÃÇÔÚÆäÖÐÒ»¸ö×é¼þÖÐ×¢²áÁíÒ»¸ö×é¼þµÄʱºòÔÙÈ¥ÒýÈëËü¾Í´í¿ªÁËËüÃǵÄÒýÈëʱ¼ä£º
// a.vue
export default {
beforeCreate: function () {
this.$options.components.TreeFolderContents =
require('./b.vue')
}
} |
3.5 ÅäºÏWebpackʵÏÖ×é¼þ°´Ðè¼ÓÔØ
ÔÚ´óÐÍÓ¦ÓÃÖУ¬ÎÒÃÇ¿ÉÄÜÐèÒª½«Ó¦Óòð·ÖΪ¶à¸öСģ¿é£¬°´Ðè´Ó·þÎñÆ÷ÏÂÔØ¡£ÎªÁËÈÃÊÂÇé¸ü¼òµ¥£¬ Vue.js
ÔÊÐí½«×é¼þ¶¨ÒåΪһ¸ö¹¤³§º¯Êý£¬¶¯Ì¬µØ½âÎö×é¼þµÄ¶¨Òå¡£Vue.js Ö»ÔÚ×é¼þÐèÒªäÖȾʱ´¥·¢¹¤³§º¯Êý£¬²¢ÇҰѽá¹û»º´æÆðÀ´£¬ÓÃÓÚºóÃæµÄÔÙ´ÎäÖȾ¡£
Vue.component('async-webpack-example',
function (resolve) {
// Õâ¸öÌØÊâµÄ require Óï·¨¸æËß webpack
// ×Ô¶¯½«±àÒëºóµÄ´úÂë·Ö¸î³É²»Í¬µÄ¿é£¬
// ÕâЩ¿é½«Í¨¹ý Ajax ÇëÇó×Ô¶¯ÏÂÔØ¡£
require(['./my-async-component'], resolve)
}) |
3.6 vue-cliʵÀýÑÝʾ£¨´ý¶¨£©
ʹÓÃNode×÷·þÎñÆ÷£¬ÖÆ×÷Ò»¸öTODO ListÒ³Ãæ£¬ÊµÏÖÔöɾ¸Ä²é
4. ÆäËû
4.1 ×é¼þ²ã¼¶»®·Ö

×é¼þµÄÈý¸ö²ã¼¶
ÒÀ¾ÝÓëÒµÎñµÄñîºÏ³Ì¶È£¬Óɵ͵½¸ß£¬ÎÒÃÇ¿ÉÒÔ½«×é¼þ·ÖΪÈý¸ö²ã´Î£ºUI×é¼þ£¬Ó¦ÓÃ×é¼þºÍÒµÎñ×é¼þ¡£
UI×é¼þÖ÷ÒªÊǴ󲿷ÖÓÉUI¿âÌṩµÄÒµÎñÎ޹صĴ¿UIäÖȾ×é¼þ£¬ÈýÕßÖÐËüµÄÁ£¶È×îϸ£¬Ã¿¸ö×é¼þ¾ÍÍê³ÉÒ»¸öUI¹¦ÄÜ£»Í¬Ê±ÒòΪÎÞ¹ØÒµÎñËü¿ÉÒÔÔÚÏîÄ¿¼ä¾ßÓÐͨÓÃÐÔ¡£
Ó¦ÓÃ×é¼þÔòÊÇÓëÒµÎñÓÐÒ»¶¨ñîºÏµÄ×é¼þ£¬ËüÊÇ»ùÓÚUI×é¼þ½øÐеķâ×°»ò×éºÏ£¬Á£¶ÈÓëUI×é¼þÀàËÆ£¬µ«´øÉÏÁËÒ»¶¨µÄÒµÎñÊôÐÔ£¬½öÔÚ±¾ÏîĿͨÓá£
ÒµÎñ×é¼þÔòÊÇÍê³Éij¸ö¾ßÌåÒµÎñµÄ×é¼þ£¬ËüÊÇ»ùÓÚUI×é¼þºÍÓ¦ÓÃ×é¼þ½øÐеķâ×°»ò×éºÏ£¬Á£¶È×î´Ö£¬¾ßÓÐÕë¶ÔÐÔµÄÒµÎñÊôÐÔ£¬Ëü²»ÐèÒªÒ²²»¾ß±¸Í¨ÓÃÐÔ¡£
·´Ó³µ½ÊµÏÖÖУ¬¿ÉÒÔÓÃÒ»¸öÀý×ÓÀ´Àí½â£ºÁбí×é¼þ -> Óû§Áбí×é¼þ -> Óû§¹ÜÀí×é¼þ¡£»ùÓÚÕâÖֲַ㣬´ÓÎļþ×éÖ¯£¬µ½×é¼þ»®·Ö£¬¶¼»áÓÐһЩ×î¼Ñʵ¼ù¡£ÊʶȵÄ×é¼þǶÌ×£ºa->b->c->d->e->f...µ±Ç¶Ìײ㼶¹ý¶àʱ»á´øÀ´ÁíÒ»¸ö¼«¶Ë£¬¸´ÔӶȲ»½µ·´Éý¡£ºÏÊʵÄǶÌ×¹æÔòÓ¦¸ÃÊÇUI×é¼þ¾¡¿ÉÄÜÏ໥¶ÀÁ¢£¬²»½øÐÐǶÌ×£»Ó¦ÓÃ×é¼þÊÇ×îÈÝÒ×·¢Éú¹ý¶ÈǶÌ׵ĵط½£¬ËùÒÔËüÃÇÖ®¼äÒ²Ó¦¸Ã¾¡¿ÉÄÜ»¥Ïà¶ÀÁ¢£¬¼´Ê¹Ç¶Ì×Ò²Çë²»Òª³¬¹ý1²ã£¬ËüÃÇÓ¦µ±´¿´âÓÉUI×é¼þºÍÒµÎñ¹æÔò×é³É£»ÒµÎñ×é¼þÔò½ö½öÓ¦µ±ÓÉUI×é¼þºÍÓ¦ÓÃ×é¼þ×é³É£¬²»Ó¦¸ÃÔÚÒ»¸öÒµÎñ×é¼þÖÐǶÌ×ÁíÒ»¸öÒµÎñ×é¼þ£¬Õâ»áÈÃÒµÎñÂß¼ÏÔµÃºÜÆæ¹Ö
Á¼ºÃµÄ×é¼þÃüÃû£ºUI×é¼þµÄÃû³ÆÓ¦µ±·´Ó³×é¼þ¹¦ÄÜ£¬Ó¦ÓÃ×é¼þµÄÃû³ÆÓ¦µ±·´Ó³ÒµÎñÊôÐÔºÍ×é¼þ¹¦ÄÜ£¬ÒµÎñ×é¼þÃû³ÆÔòÓ¦µ±ÍêÈ«ÌåÏÖÒµÎñÊôÐÔ£¬ÖÁÓÚÓ¢ÎÄ»¹ÊÇÆ´Òô...ÎÒÖ»ÄÜËµËæÔµ°É...
ͳһµÄ×é¼þ½Ó¿Ú£º×é¼þµÄ½Ó¿ÚÃüÃûÓ¦µ±±í´ïÒ»ÖµÄÓïÒ壬ÀàËÆmessage¡¢text¡¢itemsÕâÑù³£ÓõĽӿÚÃû³Æ´ú±íµÄÓïÒåºÍ¹¦Äܾ¡¿ÉÄÜÒªÔÚÏîÄ¿Öеõ½Í³Ò»
ÇåÎúµÄÎļþ×éÖ¯£ºUI×é¼þÓ¦µ±À´×ÔÏîÄ¿ÖÐÒýÈëµÄUI¿â£¬»òÕßÏîÄ¿Öе¥¶ÀµÄUI×é¼þÎļþ¼Ð£¬Ó¦ÓÃ×é¼þÓ¦µ±À´×Ôµ¥¶ÀµÄÓ¦ÓÃ×é¼þÎļþ¼Ð£¬¶øÒµÎñ×é¼þÔòÓ¦µ±Ã¿¸öÒµÎñ×é¼þÒ»¸öÎļþ¼Ð£¬ÔÚÆäÖдæ·Å¸ÃÒµÎñ×é¼þÏà¹ØµÄÒ»ÇÐÎļþ

×îºó£¬µ±ÎÒÃǰ´ÕÕÉÏÃæµÄ»®·ÖÀ´×éÖ¯×é¼þµÄʱºò£¬»¹»áÃæÁÙÒ»¸öÎÊÌ⣬һ¸öÒµÎñ×é¼þÖУ¬²¢²»ÍêÈ«ÊÇÓÉUI×é¼þºÍÓ¦ÓÃ×é¼þ×é³ÉµÄ£¬ºÜ¶à²¿·ÖÆäʵ²¢²»¾ßÓÐÈκÎͨÓÃÐÔ£¬ÄÇÕⲿ·ÖÓ¦¸ÃÈçºÎ´¦Àí£¿Í¨³£Çé¿öÏÂÎÒÃÇ»áÖ±½Ó½«ËüÃÇдÔÚÒµÎñ×é¼þÖУ¬ËùÒÔÎÒÃÇÒ»°ã¼ûµ½µÄÒµÎñ×é¼þ¶àÊÇ×Ô¶¨Òå×é¼þºÍÔÉúHTML´úÂë»ìÔÓÔÚÒ»ÆðµÄ¡£µ«¸üÓÅÑŵĽâ¾ö·½°¸£¬Êǽ«Õⲿ·ÖÄÚÈÝÒ²ÄóöÀ´×ö³É×é¼þ£¬ËüÃǾͷÅÖÃÔÚÒµÎñ×é¼þ×Ô¼ºµÄĿ¼ÖУ¬Ò»µ©ÄãÕâÑù×ö£¬Äã»á·¢ÏÖÄãµÄÒµÎñ×é¼þÖв»ÔÙ³öÏÖ´ó¿éµÄÔÉúHTML´úÂ룬ȡ¶ø´úÖ®µÄÊÇÓïÒåÇåÎú½á¹¹¼òÃ÷µÄ×Ô¶¨Òå×é¼þ¡£×é¼þ»¯µÄÊ×ҪĿµÄÊÇ·ÖÖζø²»ÊǸ´Óã¬ËùÒÔ¼´Ê¹Ã»Óи´ÓõÄÐèÇó£¬ÄãÒ²Ó¦¸ÃÓж¯Á¦È¥½øÐÐ×é¼þ»¯¡£
4.2 ajaxÊÇ·ñÐèÒªÖÃÓÚ×é¼þÄÚ
´óÁ¿µÄ¸Õ¸Õ¿ªÊ¼½øÐÐ×é¼þ»¯µÄÍŶӳÉÔ±ÃǶ¼»á¶ÔÒ»¸öÎÊÌâ½øÐÐÕùÂÛ£ºajaxÊÇ·ñÐèÒª·â×°µ½×é¼þÄÚ²¿£¿
ÏÈ˵½áÂÛ£º²»ÐèÒªÒ²²»Ó¦¸Ã¡£ÔÒòºÜ¼òµ¥£º½âñî¡£
½ö¿¼ÂÇÁ½ÖÖÇé¿ö£ºÒ»¸öÓ¦ÓÃ×é¼þÔÚij¸öÒµÎñ×é¼þÖÐÒýÓÃÁËÁ½´Î£ºµ±Õâ¸öÓ¦ÓÃ×é¼þÄÚ²¿ÔÚcreated¹³×ÓÖзâ×°Á˼ÓÔØÊý¾ÝÇëÇóµÄajaxʱ£¬Èç¹û²ÎÊýÏàͬ£¬ÄÇô¸Ã×é¼þµÄÇëÇó»áÔÚͬһ¸öÒµÎñ×é¼þÖб»·¢ËÍÁ½´Î
ÏîÄ¿ÐèÒª½øÐÐͳһµÄajax¹ÜÀíºÍÓÅ»¯£ºµ±×é¼þÄÚ²¿´æÔÚajaxÂß¼µÄʱºò£¬Í³Ò»µÄajax¹ÜÀíºÍÓÅ»¯»á±äµÃÂé·³
»¹Óиü¶àµÄ¿ÓÎÒûÓÐÁгöÀ´£¬ËùÒÔ³öÓÚ½âñîµÄÄ¿µÄ£¬¾¡¿ÉÄܲ»Òª½«ajaxÂß¼·â×°µ½×é¼þÖУ¬×é¼þ½ö¹ØÐÄäÖȾÂß¼¼´¿É¡£
4.3 ΪʲôѡÔñVue
°²ÀûÒ»²¨Vue¸ø´ó¼Ò£º¿ìËÙÉÏÊÖ£¬ÊÂʵÉÏVueûÓиı䴫ͳµÄ¿ª·¢Ä£Ê½£¬ÎÒÃÇÔÚstyleÖÐдÑùʽ£¬ÎÒÃÇÔÚtemplateÖÐдģ°å£¬ÎÒÃÇÔÚscriptÖÐдÂß¼£¬Í¬Ê±Îĵµ¼«ÆäÍêÉÆ£¬¸÷ÖÖÓïÑÔ¶¼ÓУ¬ËùÒÔ²»¹ØÄãÊÇÀÏÄñ»¹ÊÇÐÂÊÖ£¬¶¼Äܷdz£¿ìËÙµØÉÏÊÖVue½øÐпª·¢
È«×ËÊÆ½âËø£¬Êý¾ÝÇý¶¯¡¢HTMLÄ£°åÓëJSXÈýÕß¼æµÃ£¬²»Ï²»¶VueµÄ×ËÊÆ£¿Ã»¹ØÏµ£¬Ê²Ã´×ËÊÆ¶¼¿ÉÒÔ£¬Äã¿ÉÒÔÏñдReactÒ»ÑùȥдVue£¬Ò²¿ÉÒÔÏñдAngulaÒ»ÑùȥдVue
Ç¿´óµÄÏîĿģ°å£¬³¬ºÃÓõÄÏîĿģ°å¡ª¡ªvue-cli£¬±Ècreate-react-app²»ÖªµÀ¸ßµ½ÄÄÀïÈ¥ÁË
ÐÔÄÜÇ¿º·£¬»ù±¾ÉÏVueµÄäÖȾÐÔÄÜÊÇReactµÄ²î²»¶àÁ½±¶£¬ÖÁÓÚAngular...ÎÒ²»ËµÁË
¿É°®µÄ¿ª·¢Õߣ¬½ÓµØÆøµÄ¿ª·¢ÕߣºÓÈÓêϪ»îÔ¾ÔÚÖªºõ¡¢github¡¢stackoverflowµÈ¹úÄÚÍâ¸÷´óƽ̨£¬¶øReactºÍAngularÔòÊÇfacebookºÍGoogleÍŶÓÔÚά»¤£¬ÄãºÜÄѽӴ¥µ½ËûÃÇ
ÄԲзۣ¬ÎÒϲ»¶ÎÒϲ»¶ÎÒϲ»¶
4.4 Admin-UI£º
×îºó£¬ÔÙ°²ÀûÒ»²¨ÎÒÃdzöµÄAdmin-UI¿â¸ø´ó¼Ò£¨ÔÝδ¿ªÔ´£©¡£
Admin-UIÊÇÒ»Ì×»ùÓÚVue£¬ÓÃÓÚPC¶ËµÄUI¿â¡£¾ÍÏñÃû×ÖÄÇÑù£¬ÕâÌ×UI¿âÖ÷ÒªÓÃÓÚPC¶ËµÄºǫ́¹ÜÀíϵͳ¡£ÕâÒ»Ààϵͳ¶ÔÑùʽµÄ¶¨ÖÆÒªÇó±È½ÏµÍ£¬ÏàÓ¦µØÎÒÃÇÏ£ÍûÓÃÓÚÆäÖеÄUI¿âÄܹ»´øÀ´¸ü¿ìËٵĿª·¢ÌåÑé¡£ÓëBootStrapdeµÄ´ó¶øÈ«²»Ò»ÑùµÄÊÇ£¬ÎÒÃǶÔAdmin-UIµÄÔ¤ÆÚÊÇС¶øÃÀ£¬½è´Ë¾¡¿ÉÄܽµµÍʹÓÃÕßµÄѧϰ³É±¾£¬¼ÓËÙ¿ª·¢¡£

|