Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
¿ÉÄÜÊÇĿǰ×îÍêÕûµÄǰ¶Ë¿ò¼ÜVue.js½éÉÜ
 
  4963  次浏览      27
 2018-1-26 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ51cto ,Vue.js ÊÇÒ»¸öJavaScriptMVVM¿â£¬ÊÇÒ»Ì×¹¹½¨Óû§½çÃæµÄ½¥½øÊ½¿ò¼Ü¡£±¾ÎÄÏêϸ½éÉÜ£¬Ï£Íû¿ÉÒÔ°ïÖúÕýÔÚѧϰµÄÄã¡£

ÕªÒª

2016Äê×î»ðµÄǰ¶Ë¿ò¼Üµ±ÊôVue.jsÁË£¬ºÜ¶àʹÓùývueµÄ³ÌÐòÔ±ÕâÑùÆÀ¼ÛËü£¬¡°vue.js¼æ¾ßangular.jsºÍreact.jsµÄÓŵ㣬²¢ÌÞ³ýÁËËüÃǵÄȱµã¡±¡£ÊÚÓèÁËÕâô¸ßµÄÆÀ¼ÛµÄvue.js£¬Ò²ÊÇ¿ªÔ´ÊÀ½ç»ªÈ˵Ľ¾°Á£¬ÒòΪËüµÄ×÷ÕßÊÇλÖйúÈ˨CÓÈÓêϪ£¨Evan You£©¡£

Vue.js ÊÇÒ»¸öJavaScriptMVVM¿â£¬ÊÇÒ»Ì×¹¹½¨Óû§½çÃæµÄ½¥½øÊ½¿ò¼Ü¡£ËüÊÇÒÔÊý¾ÝÇý¶¯ºÍ×é¼þ»¯µÄ˼Ïë¹¹½¨µÄ£¬²ÉÓÃ×Ôµ×ÏòÉÏÔöÁ¿¿ª·¢µÄÉè¼Æ¡£Ïà±ÈÓÚAngular.js£¬Vue.jsÌṩÁ˸ü¼Ó¼ò½à¡¢¸üÒ×ÓÚÀí½âµÄAPI£¬Ê¹µÃÎÒÃÇÄܹ»¿ìËÙµØÉÏÊÖ²¢Ê¹ÓÃVue.js¡£

µ÷ÊÔ²å¼þ

ÔÚvueµ÷ÊÔ·½Ã棬¿ÉÒÔÑ¡Ôñ°²×°chrome²å¼þvue Devtools¡£´ò¿ªvueÏîÄ¿£¬ÔÚconsole¿ØÖÆÌ¨Ñ¡ÔñvueÃæ°å¡£ÔÚDevtools¹¤¾ßÖУ¬¿ÉÒÔÑ¡Ôñ×é¼þ£¬²é¿´¶ÔÓ¦×é¼þÄÚµÄÊý¾ÝÐÅÏ¢¡£Ò²¿ÉÒÔÑ¡ÔñVuexÑ¡Ï²é¿´¸ÃÏîÄ¿ÄÚVuexµÄ״̬±äÁ¿ÐÅÏ¢¡£

UI ×é¼þ¿â

ÔÚvue×é¼þ¿â·½Ã棬¸öÈ˲»ÍƼöʹÓÃUI×é¼þ¿â£¬±Ï¾¹×Ô¼ºÔìÂÖ×ӵĹý³Ì»¹ÊǺÜÓгɾ͸еġ£µ±È»£¬Èç¹û¸üÖØÊÓ¿ª·¢Ð§ÂÊ£¬²¢ÇÒÑ¡ÔñÁËvue2.0×÷Ϊǰ¶Ë¿ò¼Ü£¬ÄÇô¶öÁËÃ´ÍÆ³öµÄElement×é¼þ¾ÍÊÇÒ»¸öºÜ²»´íµÄÑ¡Ôñ¡£ÆägithubÏîÄ¿£¨https://github.com/ElemeFE/element£©¸üÐÂ±È½ÏÆµ·±£¬ËäÈ»ÏîÄ¿»áÓÐЩ²»Îȶ¨£¬µ«ÊÇĿǰΪֹelement¾ÍÊÇ×îºÃµÄÖ§³Övue2.0µÄUI×é¼þ¡£¾ÍÏñËüµÄ¿ÚºÅÒ»Ñù£¬¡°¿ìËÙ³ÉÐÍ£¬¾ÍΪÈÃÄãÉټӰࡱ¡£

vue¡¢React¡¢Angular1 ¶Ô±È

ÐÔÄܶԱÈ

ÔÚAngular1ÖУ¬ÔÚscope×÷ÓÃÓòÖÐÿһ´ÎÊý¾Ý±ä»¯£¬»á´¥·¢watcherµÄÖØÐ¼ÆË㣬angular¶Ô³£ÓõÄdomʼþ£¬xhrʼþµÈ×öÁË·â×°£¬ ÔÚÀïÃæ´¥·¢½øÈëangularµÄdigestÁ÷³Ì¡£ÔÚdigestÁ÷³ÌÀïÃæ£¬»á´Órootscope¿ªÊ¼±éÀú£¬ ¼ì²éËùÓеÄwatcher¡£²¢ÇÒ£¬Èç¹ûһЩ watcher ´¥·¢ÁíÒ»¸ö¸üУ¬Ôà¼ì²éÑ­»·£¨digest cycle£©¿ÉÄÜÒªÔËÐжà´Î¡£VueÔòûÓÐÕâ¸öÎÊÌ⣬ÒòΪËüʹÓûùÓÚÒÀÀµ×·×ٵĹ۲ìϵͳ²¢ÇÒÒì²½¶ÓÁиüУ¬Êý¾ÝµÄ±ä»¯¶¼ÊǶÀÁ¢´¦·£µÄ£¬³ý·ÇÊý¾ÝÖ®¼äÓÐÃ÷È·µÄÒÀÀµ¹ØÏµ¡£

vue¹Ù·½Ðû³ÆvueµÄäÖȾÐÔÄÜÓÅÓÚreact¡£ÎªÁËÓÐÀíÓоÝÈÃÈËÐÅ·þ£¬vue¿ª·¢ÍŶӽ¨Á¢ÁËÒ»¸ö¼òµ¥µÄ¶Ô±ÈÐÔÄܵÄÏîÄ¿£¨https://github.com/chrisvfritz/vue-render-performance-comparisons£©£¬Ëü¸ºÔðäÖȾ10000¸öÁбíÏî100´Î¡£Vue¹Ù·½½«Ã¿Ò»¸ö²ÎÕÕÏîÄ¿¶¼·Ö±ðÔËÐÐ 20 ´Î²¢È¡×îºÃµÄ½á¹û½á¹ûÈçÏÂͼ£º

Óɴ˿ɼû£¬VueµÄÐÔÄÜÊÇÔ¶ºÃÓÚAngular1£¬²¢ÇÒÉÔ΢ÓÅÓÚReactµÄ¡£

ÉçÇøÍØÕ¹¶Ô±È

Angular1µÄ±³ºóÊÇGoogle£¬ËùÒÔÉçÇø»ù´¡ÊDz»ÐèÒªµ£Ðĵ쬴ÓTutorialµ½StackOverflowµÄÎÊÌâÊýÁ¿¶¼¿ÉÒÔ·´Ó³³öÉú̬ϵͳºÜÍêÕû¡£Angular1Ö®ºóµÄ2.0°æ±¾¼¸ºõÊÇÒ»¸öÍÆ·­ÖØ×öµÄ¿ò¼Ü£¬¶ÔÓÚʹÓÃÁË1.X°æ±¾µÄÏîÄ¿£¬ÏëҪƽ»¬µÄÉý¼¶¹ý¶Éµ½2.0°æ±¾Ó¦¸ÃÊǷdz£À§Äѵġ£

ÏÖÔÚAngular2µÄÏßÉÏÓ¦ÓÃÊýÁ¿»¹²»ËãÌ«¶à£¬Ö÷Á÷±àÂ뻹ÊÇÒÔ1.X°æ±¾¾Ó¶à¡£Õâ¸ö°æ±¾»¯¾Þ´óµÄ²îÒìÒ²¼ä½ÓÓ°Ïìµ½ÁË¿ª·¢Õß¶ÔÓÚangularµÄÐÅÐÄ¡£

VueºÍReact¶¼ÓÐÇ¿´óµÄÉçÇøÖ§³Ö¡£ReactÓÐ״̬¹ÜÀí¿âFlux¡¢ReduxVue£¬ÏàÓ¦µÄ£¬VueÓÐvuex¡£

Vue ºÍ React ¶¼ÌṩÁËÇ¿´óµÄ·ÓÉ¿âÀ´Ó¦¶Ô´óÐÍÓ¦Óá£È»¶øVueµÄ·ÓÉ¿âºÍ״̬¹ÜÀí¿â¶¼ÊÇÓɹٷ½Î¬»¤Ö§³ÖµÄ¡£

React ÔòÊÇÑ¡Ôñ°ÑÕâЩÎÊÌâ½»¸øÉçÇøÎ¬»¤£¬Òò´Ë´´½¨ÁËÒ»¸ö¸ü·ÖÉ¢µÄÉú̬ϵͳ¡£µ«Ïà¶ÔµÄ£¬React µÄÉú̬ϵͳÏà±È Vue ¸ü¼Ó·±ÈÙ¡£

´ËÍ⣬Vue ÌṩÁËVue-cli ½ÅÊּܣ¬°üÀ¨ÁËWebpack£¬Browserify£¬ÉõÖÁ·Óɿ⣬ÄÜÈÃÄã·Ç³£ÈÝÒ׵ع¹½¨ÏîÄ¿¡£

ѧϰ¶¸ÇͶȶԱÈ

ÔÚÖ¸ÁîÓë×é¼þ·½Ã棬VueÖн«Ö¸ÁîºÍ×é¼þ·ÖµÃ¸üÇåÎú¡£Ö¸ÁîÖ»·â×° DOM ²Ù×÷£¬¶ø×é¼þ´ú±íÒ»¸ö×Ô¸ø×Ô×ãµÄ¶ÀÁ¢µ¥Ôª£¬ÓÐ×Ô¼ºµÄÊÓͼºÍÊý¾ÝÂß¼­¡£ÔÚ Angular1 ÖÐÁ½ÕßÓв»ÉÙÏà»ìµÄµØ·½¡£ÔÚAPIÓë¿ò¼ÜÉè¼Æ·½Ã棬angular1¶¼±ÈvueÒª¸´ÔӵĶࡣ¾Í¸öÈ˸оõ¶øÑÔ£¬angular1ºÍReactµÄѧϰÇúÏß»áÏà¶Ô¶¸ÇÍһЩ£¬¶øvueµÄ±àÂ뷽ʽ»á¸üÇ÷½üÓÚǰ¶Ë¿ª·¢Õߵıà³Ìϰ¹ß¡£

ÒòΪvueµÄ×÷ÕßÊÇÖйúÈË£¬vueµÄ¹Ù·½ÍøÕ¾¡¢½Ì³ÌºÍapi¿Ï¶¨ÊÇ×îÍêÉÆ¡¢×îÒ×¶®µÄ¡£´ËÍ⣬ÿ´Î´ó°æ±¾µÄ·¢²¼£¬¶¼»á°éËæ×ÅÏ꾡µÄÇ¨ÒÆËµÃ÷Îĵµ£¬°üº¬Á˺ܶàÏ꾡µÄ²ûÊöÒÔ¼°Ðí¶àÇ¨ÒÆµÄÀý×Ó£¬ÉõÖÁ»¹ÓÐÇ¨ÒÆ¹¤¾ß¡£AngularµÄ¿ª·¢ÍŶÓÄãÃǾͲ»¾õµÃÁ³ºìô¡­

VueµÄʹÓ÷dz£µÄ¼òµ¥£¬´´½¨Ò»¸ö±¾µØµÄ .html Îļþ£¬È»ºóͨ¹ýÈçÏ·½Ê½ÒýÈë Vue£º

ÕâÑù¾ÍÉú³ÉÁËvueµÄhello worldÓ¦Óá£

äÖȾÄÜÁ¦¶Ô±È

ReactNativeÄÜʹÄãÓÃÏàͬµÄ×é¼þÄ£ÐͱàдÓб¾µØäÖȾÄÜÁ¦µÄ APP£¨iOS ºÍ Android£©¡£ÄÜͬʱ¿ç¶àƽ̨¿ª·¢£¬¶Ô¿ª·¢ÕßÊǷdz£°ôµÄ¡£ÎªÁËÃÖ²¹Õâ·½ÃæµÄ²»×㣬ÔÚ2016Äê9Ô¾ٰìµÄJSConf2016ÆÚ¼ä£¬vue.jsµÄ×÷ÕßÓÈÓêϪÐû²¼¼ÓÃËWeexÍŶӵ£Èμ¼Êõ¹ËÎÊ£¬Ë«·½½«½øÐиü½ôÃܵĺÏ×÷£¬¹²½¨¿ª·¢Éú̬Ȧ¡£

Weex Êǰ¢ÀïµÄ¿çƽ̨Óû§½çÃæ¿ª·¢¿ò¼Ü£¬Weex µÄ JavaScript ¿ò¼ÜÔËÐÐʱÓõľÍÊÇ Vue¡£ÔÚ´ËÖ®ºó£¬ÔÚ Weex µÄ°ïÖúÏ£¬Ê¹Óà Vue Óï·¨¿ª·¢µÄ×é¼þ²»½ö½ö¿ÉÒÔÔËÐÐÔÚä¯ÀÀÆ÷¶Ë£¬»¹Äܱ»ÓÃÓÚ¿ª·¢ iOS ºÍ Android ÉϵÄÔ­ÉúÓ¦Óá£

Vue.js µÄ×÷ÕßÓÈÓêϪ±íʾ£º¡°WeexÑ¡ÔñVue×÷ΪÆäJavaScriptÔËÐÐʱ¿ò¼ÜÊÇÈÃÎҷdz£¸ßÐ˵ÄÒ»¼þÊ¡£VueµÄ×é¼þ¿ª·¢Ä£Ê½ÒѾ­±»web¿ª·¢ÕßÉçÇø¹ã·º ÈϿɣ¬¶ø°ÑVueµÄ¿ª·¢ÌåÑéÍØÕ¹µ½Ô­Éúƽ̨ÔòÊÇÎÒÒ»Ö±Ïë×öµ«Ã»ÓÐÓàÁ¦È¥×öµÄÊÂÇé¡£Ò»Ïëµ½Weex½«ÄÜÈÿª·¢ÕßÃÇÓÃVueµÄÓ﷨ȥд¿ç Web/Android/iOSÈý¶ËµÄͨÓÃ×é¼þ£¬¾ÍÈÃÎÒºÜÐË·Ü¡£¡±

vueµÄȱµã

Vue¾ÍÕâôºÃ£¬ÄѵÀûÓÐȱµãÂ𣿵±È»ÓУ¬vueËäÈ»ÔÚ16Äê·Ç³£»ð±¬£¬µ«ÊÇÏà±ÈÓÚangularºÍreact£¬²»ÂÛÊdzÉÊì¶È»¹ÊÇÉçÇø»îÔ¾¶È¶¼»¹²»ÊǶÔÊÖ¡£´ËÍ⣬VueÃ÷È·ÉùÃ÷ÁË×Ô¼º·ÅÆúÁ˶ÔIE8µÄÖ§³Ö¡£ÔÙ¿´¿´ÏÖÔÚµÄÕÐÆ¸ÍøÕ¾ÉÏ£¬ÓжàÉÙдÁËÐèÒªÓÐangular¾­Ñ飬¶øÓÖÓжàÉÙдÁËÐèÒªvue¾­Ñ飬¾Í¿É¼ûvueµÄÓ°ÏìÁ¦Ïà±ÈÓÚangularºÍreact»¹²îµÄºÜÔ¶¡£

vueÈ«¼ÒͰ¼°ÏîÄ¿¼Ü¹¹

VueÓÐÖøÃûµÄÈ«¼ÒͰϵÁУ¬°üº¬ÁËvue-router£¨http://router.vuejs.org£©£¬vuex£¨http://vuex.vuejs.org£©£¬ vue-resource£¨https://github.com/pagekit/vue-resource£©¡£ÔÙ¼ÓÉϹ¹½¨¹¤¾ßvue-cli£¬¾ÍÊÇÒ»¸öÍêÕûµÄvueÏîÄ¿µÄºËÐĹ¹³É¡£

vue-router·ÓÉ

ÍÆ¼öʹÓÃnpm¹¤¾ßÀ´°²×°vue-router

npm install vue-router

ͨ¹ýimportµ¼Èë²¢¶¨ÒåVueÄ£¿é¡¢vue-routerÄ£¿éºÍÐèҪʹÓõÄ×é¼þ£¬ÔÚ±¾ÀýÖУ¬·Ö±ðÊÇGoods¡¢RatingsºÍSeller×é¼þ¡£×îºó£¬Èç¹ûÔÚÒ»¸öÄ£¿é»¯¹¤³ÌÖÐʹÓÃËü£¬±ØÐëҪͨ¹ý Vue.use() Ã÷È·µØ°²×°Â·Óɹ¦ÄÜ¡£

import Vue from¡¯vue¡¯

importRouter from¡¯vue-router¡¯

import Goods from ¡®@/components/goods/goods¡¯;

import Ratings from ¡®@/components/ratings/ratings¡¯;

import Seller from ¡®@/components/seller/seller¡¯;

Vue.use(Router); // ÐèÒªimport VueºÍRouter£¬²»È»»á±¨´íundefined

ͨ¹ýconst router= new VueRouter£¨£©À´¶¨ÒåÒ»¸ö·ÓÉ£¬²¢´«Èë¶ÔÓ¦µÄÅäÖ㬰üÀ¨Â·¾¶pathºÍ×é¼þcomponents¡£

×îºó£¬ÔÚʹÓÃnewVueÀ´´´½¨ºÍ¹ÒÔØvue¸ùʵÀýµÄʱºò£¬¼ÇµÃҪͨ¹ý routerÅäÖòÎÊý×¢Èë·ÓÉ£¬¼´ÔÚrouterÖÐexport³öÀ´µÄ·ÓɶÔÏ󣬴ӶøÈÃÕû¸öÓ¦Óö¼ÓзÓɹ¦ÄÜ¡£

vuex״̬¹ÜÀí

Vuex ÊÇÒ»¸öרΪ Vue.js Ó¦ÓóÌÐò¿ª·¢µÄ״̬¹ÜÀíģʽ¡£Ëü²ÉÓü¯ÖÐʽ´æ´¢¹ÜÀíÓ¦ÓõÄËùÓÐ×é¼þµÄ״̬£¬²¢ÒÔÏàÓ¦µÄ¹æÔò±£Ö¤×´Ì¬ÒÔÒ»ÖÖ¿ÉÔ¤²âµÄ·½Ê½·¢Éú±ä»¯¡£ÈçÇ°ÃæËùÌáµ½µÄ£¬Vuex ÒѾ­¼¯³Éµ½ Vue µÄ¹Ù·½µ÷ÊÔ¹¤¾ßvue Devtools£¬¿ÉÒÔÇáËɵIJ鿴ÏîÄ¿ÖеÄVuex״̬±ä»¯Çé¿ö¡£

¼ÙÉèÓÐÕâÑùÒ»¸ö³¡¾°£ºÎÒÃǵÄÏîÄ¿¹æÄ£±È½Ï´ó£¬Óжà¸ö¸¸×é¼þ£¬Ã¿¸ö¸¸×é¼þͬʱÓÖ°üº¬¶à¸ö×Ó×é¼þ¡£ÈçºÎ±£³Ö¶ÔËùÓÐʱ¼äµÄ×·×Ù½«±äµÃºÜÀ§ÄÑ¡£µ½µ×ÄĸöʼþÊÇÄĸö×é¼þÅÉ·¢µÄ£¬Äĸö×é¼þ¸Ã¼àÌýÄĸöʼþ£¿¸¸×é¼þ½«±äµÃºÍ×Ó×é¼þñîºÏÔ½À´Ô½ÑÏÖØ£¬ÒòΪËüÐèÒªÃ÷È·µÄÅÉ·¢ºÍ¼àÌý×Ó×é¼þµÄijЩʼþ¡£ÏîÄ¿Âß¼­·ÖÉ¢ÔÚ¸÷¸ö×é¼þµ±ÖУ¬ºÜÈÝÒ×µ¼ÖÂÂß¼­µÄ»ìÂÒ£¬²»ÀûÓÚÎÒÃÇÏîÄ¿µÄά»¤¡£

Õâ¾ÍÊÇ Vuex ÓÃÀ´½â¾öµÄÎÊÌâ¡£ Vuex µÄËĸöºËÐĸÅÄî·Ö±ðÊÇ£º

The state tree£ºVuex ʹÓõ¥Ò»×´Ì¬Ê÷£¬ÓÃÒ»¸ö¶ÔÏó¾Í°üº¬ÁËÈ«²¿µÄÓ¦Óò㼶״̬¡£ÖÁ´ËËü±ã×÷Ϊһ¸ö¡ºÎ¨Ò»Êý¾ÝÔ´(SSOT)¡»¶ø´æÔÚ¡£ÕâÒ²Òâζ×Å£¬Ã¿¸öÓ¦Óý«½ö½ö°üº¬Ò»¸ö store ʵÀý¡£µ¥×´Ì¬Ê÷ÈÃÎÒÃÇÄܹ»Ö±½ÓµØ¶¨Î»ÈÎÒ»ÌØ¶¨µÄ״̬Ƭ¶Î£¬ÔÚµ÷ÊԵĹý³ÌÖÐÒ²ÄÜÇáÒ×µØÈ¡µÃÕû¸öµ±Ç°Ó¦ÓÃ״̬µÄ¿ìÕÕ¡£

Getters£ºÓÃÀ´´Ó store »ñÈ¡ Vue ×é¼þÊý¾Ý¡£

Mutators£ºÊ¼þ´¦ÀíÆ÷ÓÃÀ´Çý¶¯×´Ì¬µÄ±ä»¯¡£

Actions£º¿ÉÒÔ¸ø×é¼þʹÓõĺ¯Êý£¬ÒÔ´ËÓÃÀ´Çý¶¯Ê¼þ´¦ÀíÆ÷ mutations

VuexºÍ¼òµ¥µÄÈ«¾Ö¶ÔÏóÊDz»Í¬µÄ£¬µ±Vuex´ÓstoreÖжÁȡ״ֵ̬µÄʱºò£¬Èô״̬·¢ÉúÁ˱仯£¬ÄÇôÏàÓ¦µÄ×é¼þÒ²»á¸ßЧµÄ¸üС£²¢ÇÒ£¬¸Ä±ästoreÖÐ״̬µÄΨһ;¾¶¾ÍÊÇÌá½»commit mutations¡£ÕâÑù±ãÓÚÎÒÃǸú×Ùÿһ´Î״̬µÄ±ä»¯¡£Ö»Òª·¢ÉúÁË״̬µÄ±ä»¯£¬Ò»¶¨°éËæ×ÅmutationµÄÌá½»¡£

ÈÃÎÒÃÇÀ´¿´Ò»¸ö×î¼òµ¥µÄvuexÀý×Ó£º

°²×° Vuex Ö®ºó£¬ÈÃÎÒÃÇÀ´´´½¨Ò»¸ö store¡£´´½¨¹ý³ÌÖ±½ØÁ˵±¡ª¡ª½öÐèÒªÌṩһ¸ö³õʼ state ¶ÔÏóºÍһЩ mutations£º

ÏÖÔÚ£¬Äã¿ÉÒÔͨ¹ý store.state À´»ñȡ״̬¶ÔÏó£¬ÒÔ¼°Í¨¹ý store.commit ·½·¨´¥·¢×´Ì¬±ä¸ü£º

vue-resource½éÉÜ

Vue-resourceÓÐÌå»ýС£¬Ö§³ÖIE9ÒÔÉϵÄä¯ÀÀÆ÷£¬Ö§³ÖpromiseÌØÐÔµÄÌØµã¡£Í¬ÑùÍÆ¼öʹÓÃnpmÀ´°²×°Vue-resource¡£

$ npm install vue-resource

ÔÚ°²×°²¢ÒýÈëvue-resourceºó£¬¿ÉÒÔ»ùÓÚÈ«¾ÖµÄVue¶ÔÏóʹÓÃhttp£¬Ò²¿ÉÒÔ»ùÓÚij¸öVueʵÀýʹÓÃhttp¡£

ÔÚ·¢ËÍÇëÇóºó£¬Ê¹ÓÃthen·½·¨À´´¦ÀíÏìÓ¦½á¹û£¬then·½·¨ÓÐÁ½¸ö²ÎÊý£¬µÚÒ»¸ö²ÎÊýÊÇÏìÓ¦³É¹¦Ê±µÄ»Øµ÷º¯Êý£¬µÚ¶þ¸ö²ÎÊýÊÇÏìӦʧ°ÜʱµÄ»Øµ÷º¯Êý¡£

vue-resourceµÄÇëÇóAPIÊǰ´ÕÕREST·ç¸ñÉè¼ÆµÄ£¬ËüÌṩÁË7ÖÖÇëÇóAPI£º

¡¤ get(url,[options])
¡¤ head(url,[options])
¡¤ delete(url,[options])
¡¤ jsonp(url,[options])
¡¤ post(url,[body], [options])
¡¤ put(url, [body],[options])
¡¤ patch(url,[body], [options])

vue¹¤³ÌĿ¼½á¹¹

ÏÂͼÊÇÒ»¸ö¼òµ¥µÄvueÏîÄ¿µÄ´ó¸Å½á¹¹£¬ÏÂÃæ¼òÒª½éÉÜÒ»ÏÂÿ¸öÎļþ¼ÐÖÐÒ»°ã¶¼»á´æ·ÅÄÄЩÄÚÈÝ¡£

components/Îļþ¼ÐÓÃÀ´´æ·ÅVue ×é¼þ¡£¸öÈ˽¨Ò飬°Ñÿһ¸ö×é¼þÖÐʹÓõ½µÄimageͼƬ·ÅÖõ½¶ÔÓ¦µÄ×é¼þ×ÓÎļþĿ¼Ï£¬±ãÓÚͳһµÄ¹ÜÀí

Node_modules/npm°²×°µÄ¸ÃÏîÄ¿µÄÒÀÀµ¿â

vuex/Îļþ¼Ð´æ·ÅµÄÊÇºÍ Vuex store Ïà¹ØµÄ¶«Î÷£¨state¶ÔÏó£¬actions£¬mutations)

router/Îļþ¼Ð´æ·ÅµÄÊǸúvue-routerÏà¹ØµÄ·ÓÉÅäÖÃÏî

build/ÎļþÊÇ webpack µÄ´ò°ü±àÒëÅäÖÃÎļþ

static/Îļþ¼Ð´æ·ÅһЩ¾²Ì¬µÄ¡¢½ÏÉٱ䶯µÄimage»òÕßcssÎļþ

config/Îļþ¼Ð´æ·ÅµÄÊÇһЩÅäÖÃÏ±ÈÈç·þÎñÆ÷·ÃÎʵĶ˿ÚÅäÖõÈ

dist/¸ÃÎļþ¼ÐÒ»¿ªÊ¼ÊDz»´æÔÚ£¬ÔÚÎÒÃǵÄÏîÄ¿¾­¹ý build Ö®ºó²Å»á²ú³ö

App.vue¸ù×é¼þ£¬ËùÓеÄ×Ó×é¼þ¶¼½«ÔÚÕâÀï±»ÒýÓÃ

index.htmlÕû¸öÏîÄ¿µÄÈë¿ÚÎļþ£¬½«»áÒýÓÃÎÒÃǵĸù×é¼þ App.vue

main.jsÈë¿ÚÎļþµÄ js Âß¼­£¬ÔÚwebpack ´ò°üÖ®ºó½«±»×¢Èëµ½ index.html ÖÐ

vueÖÐlessµÄÓ¦ÓÃ

ÔÚvueÏîÄ¿ÖÐÒ»Ñù¿ÉÒÔʹÓÃlessÔ¤±àÒ룬ֻÊÇÐèҪʹÓÃnpm°²×°less-loader²å¼þ¡£°²×°Íê³Éºó£¬ÔÚvueÖеÄcssÄ£¿é½øÐмòµ¥µÄÅäÖã¬ÕâÑù¾Í¿ÉÒÔÖ±½ÓʹÓÃlessÀ´±àдÑùʽ±íÁË¡£ÔÚ´ò°ü±àÒëµÄʱºò£¬»á×Ô¶¯Éú³É¶ÔÓ¦µÄcssÑùʽ¡£

vueºÏʵÀý½²½âVueºËÐŦÄÜ

VueµÄ¹¦ÄÜÓкܶ࣬ºÜÄÑÒ»Ò»½øÐÐÏêϸµÄ½âÊÍ¡£ÏÂÃæ¸ù¾ÝÔÚ¹¤×÷ÖеÄÏîĿʵÀý£¬½áºÏ´úÂë½âÊÍÒ»ÏÂvueµÄ¼¸´óºËÐŦÄÜ¡£

¼ÆËãÊôÐÔ

¼ÙÉèÓÐÈçÏµĹºÎï³µ½áË㳡¾°£¬Óû§Ñ¡ÖÐÉÌÆ·µÄ×ܽð¶îÊǸù¾ÝÉÌÆ·ÊýÁ¿¡¢Ñ¡ÖÐÉÌÆ·ÖÖÀàÊý ºÍÉÌÆ·µ¥¼ÛÀ´±ä»¯µÄ¡£È»¶ø£¬ÊýÁ¿¡¢Ñ¡ÖÐÖÖÀàÊýÁ¿ºÍµ¥¼ÛÕ⼸¸ö¶ÔÏó¶¼ÊǸù¾ÝÓû§Ñ¡Ôñ¶ø¶¯Ì¬±ä»¯µÄ£¬Èç¹ûÔÚǰ¶ËÄ£°æÖÐΪÁ˼ÆËã×îÖÕÉÌÆ·×ܶ·ÅÈëÕ⼸¸ö¶¯Ì¬±ä»¯µÄ±äÁ¿£¨ÉÌÆ·ÊýÁ¿¡¢ÉÌÆ·µ¥¼Û¡¢Ñ¡ÖÐÉÌÆ·ÖÖÀࣩ£¬»áÈÃÕâ¸öÂß¼­±äµÃ¸´ÔÓÄÑÒÔά»¤¡£ÔÚÕâÖÖÇé¿öÏ£¬Ä£°æ±ã²»ÔÙ¼ò½àÇåÎú¡£Vue¸ø³öÁË´ËÖÖ³¡¾°µÄ½â¾ö·½°¸£¬ÔÚÈκθ´ÔÓµÄÂß¼­£¬vue¶¼ÍƼöʹÓüÆËãÊôÐÔ¡£

ÈçÉÏͼËùʾ£¬ÔÚhtmlÖУ¬ÎÒÃÇÖ»ÐèҪʹÓÃ{{totalPrice}}Õâ¸ö¼ÆËãÊôÐԾͿÉÒÔÀ´±íʾ×îÖÕµÄÉÌÆ·×ܶÎÒÃDz»ÐèÒª¹Ø×¢Õâ¸ö±äÁ¿µÄÊýÖµ±ä»¯£¬totalPriceÕâ¸ö±äÁ¿µÄÂß¼­Ð´ÔÚ¶ÔÓ¦µÄcomputed¼ÆËãÊôÐÔÖС£

Ò²Ðí»áÓÐÒÉÎÊ£¬Õâ¸ö¼ÆËãÊôÐԺͶ¨ÒåÒ»¸ömethod·½·¨²»ÊDz¶àô£¿ÕâÁ½Õß×î´óµÄÇø±ðÊǼÆËãÊôÐÔÊÇ»ùÓÚËüµÄÒÀÀµ½øÐлº´æµÄ¡£¼ÆËãÊôÐÔÖ»ÓÐÔÚËüµÄÏà¹ØÒÀÀµ·¢Éú±ä»¯Ê±²Å»áÖØÐ¼ÆËãÇóÖµ¡£ÔÚ±¾ÀýÖУ¬Ö»Óе±Ñ¡ÔñÉÌÆ·µÄ¼Û¸ñpriceºÍÊýÁ¿count·¢Éú±ä»¯Ê±£¬Õâ¸ö¼ÆËãÊôÐÔtotalPrice²Å»áÖØÐ¼ÆËãеÄÖµ¡£Õâ¾ÍÒâζ×Å£¬Ö»ÒªtotalPriceÕâ¸öֵûÓз¢Éú±ä»¯£¬¶à´Î·ÃÎʸüÆËãÊôÐÔ»áÁ¢¼´·µ»ØÖ®Ç°µÄ¼ÆËã½á¹û£¬¶ø²»±ØÔÙ´ÎÖ´ÐмÆËã¡£

Ä£°æÓï·¨

Vue.js ʹÓÃÁË»ùÓÚ HTML µÄÄ£°æÓï·¨£¬ÔÊÐí¿ª·¢ÕßÉùÃ÷ʽµØ½« DOM °ó¶¨ÖÁµ×²ã Vue ʵÀýµÄÊý¾Ý¡£ËùÓÐ Vue.js µÄÄ£°å¶¼ÊǺϷ¨µÄ HTML £¬ËùÒÔÄܱ»×ñÑ­¹æ·¶µÄä¯ÀÀÆ÷ºÍ HTML ½âÎöÆ÷½âÎö¡£VueµÄÄ£°æÓï·¨°üÀ¨ÁËʹÓÃË«´óÀ¨ºÅ²åÈëÎı¾¡¢Ê¹ÓÃv-html²åÈë´¿HTMLÄÚÈÝ¡¢Ê¹ÓÃv-bind²åÈë¶ÔÏó¡¢ÀàËÆangularµÄv-if¡¢v-show¡¢v-forÖ¸Áî¡¢ÒÔ¼°¹ýÂËÆ÷µÈµÈ¡£

×é¼þ»¯

×é¼þ£¨Component£©ÊÇ Vue.js ×îÇ¿´óµÄ¹¦ÄÜ¡£×é¼þ¿ÉÒÔ·â×°¿ÉÖØÓõĴúÂ룬ͨ¹ý´«Èë¶ÔÏóµÄ²»Í¬£¬ÊµÏÖ×é¼þµÄ¸´Óá£

¾ÙÒ»¸ö¼òµ¥µÄ×齨Àý×Ó£¬ÎÒÃÇÊ×Ïȱàдһ¸östar×é¼þ£¬Ëü¾ÍÊÇÒ»¸öÆÕͨµÄstar.vueÎļþ¡£ËüµÄ×÷ÓþÍÊǼòµ¥ÊµÏÖÁËÒ»¸öÎå½ÇÐÇ¡£

ÈçºÎÔÚÆäËûµÄvueÎļþÖÐʹÓÃÕâ¸östar×é¼þÄØ£¿ÈçÏÂͼËùʾ£¬Ê×ÏÈͨ¹ýimportÒýÈëstar×é¼þ¶ÔÏ󣬲¢ÔÚÏëʹÓÃstar×é¼þµÄvueÎļþÖÐÉùÃ÷×¢²ástar×é¼þ¡£ÏÖÔھͿÉÒÔÓä¿ìµÄͨ¹ý±êÇ©À´ÔÚ¸ÃvueÎļþÖÐÈÎÒâµØ·½Ê¹ÓÃstar×é¼þÁË¡£ÔÚÄãÏëչʾһ¸öÎå½ÇÐǵĵط½£¬Ê¹ÓÃÒ»¸östar±êÇ©£¬¾Í¿ÉÒÔÇáËÉÍê³ÉÕâ¸ö¹¦ÄÜ¡£

×é¼þʵÀýµÄ×÷ÓÃÓòÊǹÂÁ¢µÄ¡£ÕâÒâζ×Ų»ÄÜÔÚ×Ó×é¼þµÄÄ£°åÄÚÖ±½ÓÒýÓø¸×é¼þµÄÊý¾Ý¡£ÒªÈÃ×Ó×é¼þʹÓø¸×é¼þµÄÊý¾Ý£¬ÎÒÃÇÐèҪͨ¹ý×Ó×é¼þµÄpropsÑ¡Ïî¡£Èç±¾ÀýËùʾ£¬×Ó×é¼þstarÒªÏÔʽµÄʹÓÃpropsÑ¡ÏîÉùÃ÷ËüÆÚ´ý»ñµÃµÄÊý¾Ý¡£ÔÚÕâÀï¾ÍÊÇÖ¸µÄ¡°size¡±ºÍ¡°score¡±Á½¸ö±äÁ¿¡£ÎÒÃÇ¿ÉÒÔͨ¹ý¸¸¼¶¸ø×Ó×é¼þstar´«Èë´óСºÍÊýÖµÕâÁ½¸ö¶ÔÏó£¬À´ÊµÏÖ¶Ô×Ó×é¼þµÄ¶¨ÖÆ»¯¡£

¹ý¶ÉЧ¹û

Vue ÔÚ²åÈë¡¢¸üлòÕßÒÆ³ý DOM ʱ£¬Ìṩ¶àÖÖ²»Í¬·½Ê½µÄÓ¦Óùý¶ÉЧ¹û£¬¿ÉÒÔÓüòµ¥µÄ¼¸ÐдúÂëʵÏÖ¿áìŵĹý¶ÉЧ¹û¡£Vue ÌṩÁË transition µÄ·â×°×é¼þ£¬ÔÚʹÓÃv-if¡¢v-showµÈ·½·¨Ê¹µÃtransitionÄÚ²¿domÔªËØ·¢Éú±ä»¯Ê±£¬¿ÉÒÔ¸øÈκÎÔªËØºÍ×é¼þÌí¼Ó entering/leaving ¹ý¶É¡£

µ±v-showÖÐÄÚÈÝ·¢Éú±ä»¯Ê±£¬transition×é¼þÖеÄÔªËØ»á·¢Éú״̬µÄ¸Ä±ä£¬ÔÚÓ¦ÓÃÁËtransition·â×°ºó£¬Vue»á×Ô¶¯Ê¶±ðÄ¿±êÔªËØÊÇ·ñÓ¦ÓÃÁËCSS¹ý¶ÉЧ¹û¶¯»­£¬Èç¹ûÓУ¬»áÔÚºÏÊʵÄʱ»úÌí¼Ó entering/leavingµÄclassÀ´ÊµÏָùý¶ÉЧ¹û¡£

ÏÂͼËùʾÊÇÒ»¸ö¼òµ¥µÄ¹ý¶ÉЧ¹ûµÄÀý×Ó£¬ÐèÒª½«ÏëʵÏÖ¹ý¶ÉЧ¹ûµÄÔªËØ·ÅÔÚtransition±êÇ©Öаü¹ü£¬Í¨¹ýname=¡°slide-fade¡±À´ÉùÃ÷¹ý¶ÉЧ¹ûÃû³Æ£¬²¢ÔÚ¶ÔÓ¦µÄvueÎļþÖÐÌí¼Ó¹ý¶ÉЧ¹û µÄcssÑùʽ£¬ÕâÑù¾Í¿ÉÒÔ¼òµ¥µÄÍê³É¸ÃÔªËØµÄ¹ý¶ÉЧ¹û¡£

×ܽá

¸ù¾Ý²»Íêȫͳ¼Æ£¬°üÀ¨¶öÁËô¡¢ËÕÄþÒ×¹º¡¢ÃÀÍÅ¡¢Ììè¡¢Laravel¡¢htmlBurgerµÈ¹úÄÚÍâÖªÃû´ó¹«Ë¾¶¼ÔÚʹÓÃvue½øÐÐÐÂÏîÄ¿µÄ¿ª·¢ºÍ¾ÉÏîÄ¿µÄǰ¶ËÖØ¹¹¹¤×÷¡£

´ËÍ⣬vue + vuex+ axios + vue-router + webpack + es6 + lessµÄÏîÄ¿¼Ü¹¹³ÉΪÁËÔ½À´Ô½¶à´ó¹«Ë¾µÄµÚһѡÔñ¡£

   
4963 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì