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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʹÓÃVue.jsÔÚWordPressÖд´½¨µ¥Ò³ÃæÓ¦ÓÃSPA
 
  3827  次浏览      28
  2019-2-18
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÇðÛÖ²©¿Í£¬±¾ÎÄÖ÷Òª½éÉÜÈçºÎʹÓÃVue.jsÔÚWordPressÖд´½¨µ¥Ò³ÃæÓ¦ÓÃSPA£ºÓÃWordPress×öºó¶Ë·þÎñÌṩÊý¾Ý £¬ÓÃVue.js»ñÈ¡Êý¾Ý×öǰ¶ËäÖȾ£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£

ÎÒÃǽ«Óõ½WordPressµÄREST api £¨¶ÔÍâÌṩ±ê×¼µÄRESTFul½Ó¿Ú£©ºÍVue.js £¨Ò»¸ö½¥½øÊ½ JavaScript ¿ò¼Ü£©¡£Èç¹ûÄãûÓÐÓùýVue.js»òÕ߯äËûJavaScript¿ò¼Ü£¬Õâ»áÊÇÒ»¸öºÜºÃµÄÉÏÊÖ»ú»á¡£

ÎÂܰÌáʾ£º±¾ÎÄÃæÏòÓÐÒ»¶¨¾­ÑéµÄWordPress¿ª·¢Õߣ¬ÎÒ¼ÙÉèÄãÊìϤPHP, JavaScriptºÍWordPress REST API¡£ Èç¹ûÄãÔÚÕâЩ·½ÃæÊÇÐÂÊÖ£¬ÍƼöÄãÏÈÔĶÁÏÂÃæµÄ½Ì³Ì£º

JavaScript for WordPress Developers

A Quick Start Guide To The WordPress REST API

JavaScript and the WordPress REST API: Understanding the Jargon

ÎÒÃǽ«»áÓõ½ºÜ¶àVue.jsµÄ¹¦ÄÜ£¬±ÈÈçµ¥Îļþ×é¼þ£¬Ê¼þ´¦Àí£¬¼ÆËãÊôÐÔ£¬ÉúÃüÖÜÆÚ£¬»¹»áÓõ½Axios¿âºÍWordPress REST API½øÐн»»¥¡£Èç¹ûÄã²»ÊìϤҲû¹ØÏµ£¬¿ÉÒÔÏÈѧϰÏÂÃæµÄ½Ì³ÌÀ´¿ìËÙÉÏÊÖ£º

Vue.js 2 ¨C Getting Started by Academind

Introduction to Vue.js by Vue Mastery

ËäÈ»Vue.jsÓ¦ÓÃÍêÈ«¿ÉÒÔÓÃES5Óï·¨À´Ð´£¬µ«ÊÇÎÒ½«Óõ½Ò»Ð©ES6ºÍES7µÄÐÂÌØÐÔ£¬Èç¹ûÄãÏë¿ìËÙѧϰһÏÂES6µÄÓï·¨£¬¿ÉÒÔ¿´¿´ÏÂÃæµÄ½Ì³Ì£º

ES6 JavaScript ¨C The Basics

The WordPress Developer¡¯s Guide To ES2015 (ES6)

Five-minute crash course in ES6 & ES7

ECMAScript 6 ÈëÃÅ ¨C ÈîÒ»·å

Ñ¡ÔñVue.js»òÆäËûJavaScript¿ò¼ÜÖ÷Òª¿´Äã×Ô¼ºµÄÐèÇóºÍ¼¼ÊõÆ«ºÃ£¬±¾ÎĵÄÄ¿±êÊÇÓÃʵ¼Ê°¸Àý´øÄã̽Ë÷һϰÑWordPressºÍǰ¶Ëµ¥Ò³ÃæÓ¦ÓýáºÏÆðÀ´µÄ¿ÉÄÜÐÔ¡£

¸ÅÊö£ºÈçºÎÔÚWordPressÖпª·¢Vueµ¥Ò³ÃæÓ¦ÓÃ

ÎÒÒѾ­ÔÚWordPressÖÐÀûÓÃVue.jsºÍTwenty Seventeen Ö÷ÌâµÄ×ÓÖ÷Ì⣨child theme£©¿ª·¢ÁËÒ»¸ö¼òµ¥µÄ´øËÑË÷¹¦Äܵĵ¥Ò³ÃæÓ¦Ó㬴úÂë¹²ÏíÔÚGitHub ÉÏ£¬Äã¿ÉÒÔÏÂÔØÏÂÀ´£¬Ò»±ßÔĶÁ±¾ÎÄÒ»±ß²é¿´´úÂë¡£

µ¥Ò³ÃæÓ¦Óã¨SPA£©¿ÉÒÔ¹ÒÔØÔÚÈÎÒâÒ»¸öWordpressÒ³Ãæ£¨page£©ÉÏ£¬Ö»ÒªÕâ¸öWordPressÒ³ÃæÖ¸¶¨ÁËÌØ¶¨µÄ×Ô¶¨ÒåÒ³ÃæÄ£°å£¨Custom Page Templates£©£¬Õâ¸ö×Ô¶¨ÒåÒ³ÃæÄ£°åµÄÖ÷Òª×÷ÓþÍÊÇÌṩһ¸öDOMÔªËØ£¬ÓÃ×÷vueʵÀýµÄ¹ÒÔØµã¡£

ÓÃ×Ô¶¨ÒåÒ³ÃæÄ£°å½«Vue.jsÓë WordPress ½áºÏÆðÀ´

ÎÒÃǵÄÕâ¸öSPA²ÉÓõÄÊÇÒ»ÖÖ»ìºÏ¼Ü¹¹£¬·þÎñÆ÷¶ËµÄ³ÌÐòWordPress¼ÈΪÆäÌṩºó¶Ë·þÎñ£¬Ò²ÎªÆäÌṩǰ¶ËäÖȾ£¨Èç²¼¾ÖºÍÖ÷ÌâµÈ£©£¬Ç°¶ËÒ³ÃæµÄ²¿·ÖÊý¾ÝÊÇͨ¹ýä¯ÀÀÆ÷¶ËµÄÓ¦Óã¨Vue.js£©À´äÖȾµÄ¡£ÕâºÍ³£¼ûµÄSPAǰºó¶Ë·ÖÀë¼Ü¹¹²»Í¬£¬Í¨³£·þÎñÆ÷¶Ë³ÌÐò½ö¸ºÔðÌṩÄÚÈÝ£¨Í¨¹ýAPIÏìÓ¦£©£¬²¢²»Éú³ÉÒ³ÃæÄÚÈݵÄHTML¡£

ʹÓÃVue.js¿ìËÙËÑË÷WordPressµÄÈÕÖ¾

ÔÚWordPressµÄËÑË÷³¡¾°ÖУ¬Ã¿´ÎËÑË÷¶¼»á¶Ô·þÎñÆ÷µÄ·¢ÆðÒ»´ÎÇëÇ󣬵¼ÖÂÍøÒ³ÖØÐ¼ÓÔØ¡£¼´Ê¹ÄãÖ»Ïë¼òµ¥¿ìËÙµÄËÑË÷Ò»ÏÂWordPressµÄÈÕÖ¾±êÌâÒ²¿ÉÄܵȰëÌ죨ÒòÎªÍøÂçÑÓʱ£©£¬ÕâʹWordPressµÄËÑË÷ÌåÑé±äµÃºÜ²î¡£

SPAµ¥Ò³ÃæÓ¦Óã¬Ö»ÓÐÒ»¸öÍêÕûµÄÒ³Ãæ£¬ËüÔÚ¼ÓÔØÒ³ÃæÊ±£¬²»»á¼ÓÔØÕû¸öÒ³Ãæ£¬¶øÊÇÖ»¸üÐÂij¸öÖ¸¶¨µÄÈÝÆ÷ÖÐÄÚÈÝ¡£Ê¹ÓÃSPA£¬¿ÉÒÔÈÃÓû§ÔÚ½øÐÐËÑË÷ʱ¶¯Ì¬¸üÐÂÍøÒ³¶ø²»ÊÇÖØÐ¼ÓÔØ¡£ÕâʹµÃÓû§ÌåÑé·Ç³£ÓäÔá£Äã¿ÉÒÔͨ¹ýµÄʾÀýÖ±¹Û¸ÐÊÜÒ»ÏÂ

¾ß±¸ËÑË÷¹¦ÄܵÄVueµ¥Ò³ÃæÓ¦ÓõÄ×é¼þÆÊÎö

ÔÚÉîÈëÑо¿´úÂë֮ǰ£¬ÈÃÎÒÃÇÁ˽âÒ»ÏÂÕâ¸öµ¥Ò³ÃæÓ¦ÓõÄÄÚ²¿¹¤×÷Ô­Àí¡£ÏÂͼ½âÊÍÁËÕâ¸öËÑË÷AppÖеÄ×é¼þ½»»¥Á÷³Ì¡£

Vueµ¥Ò³ÃæËÑË÷Ó¦ÓõÄÄÚ²¿Âß¼­

ÈÃÎÒÃÇ×ÜÀÀһϸ÷¸ö×é¼þµÄ×÷Óãº

1.AppNavigationÓÃÓÚΪVue RouterÉ趨ä¯ÀÀÆ÷·ÃÎÊ·¾¶£¬²¢½«AppQuickSearchºÍAppCustomSearch×é¼þºÍ·¾¶Ó³ÉäÆðÀ´¡£

2.AppQuickSearchºÍAppCustomSearchÊÇÁ½¸öÍêÈ«Ï໥¶ÀÁ¢µÄ¸¸×é¼þ£¬Ã¿¸ö×é¼þ¶¼Óи÷×ÔµÄÊý¾Ý£¬·½·¨ºÍÊôÐÔ£¬ËüÃǶ¼ÓÐÁ½¸ö×Ó×é¼þAppFilterSwitchesºÍAppGetPosts¡£

3.AppFilterSwitchesÓÃÀ´¿ØÖƸ´Ñ¡¿ò»ò°´Å¥µÄ¿ª¹ØÇл»¡£

4.AppGetPosts»á´ÓWordPress REST API»ñÈ¡Êý¾Ý£¬²¢Í¨¹ý¹Ø¼ü×ֺ͹ýÂËÌõ¼þ¶Ô½á¹û½øÐйýÂË£¬È»ºóµ÷ÓÃAppDisplayPost×é¼þÀ´Õ¹Ê¾É¸Ñ¡½á¹û¡£

5.AppDisplayPostÀﶨÒåÁËËÑË÷½á¹ûµÄչʾÑùʽºÍHTML¡£

ÒÔÉÏÕâЩ¶¼ÊÇÔÚWordPressµÄij¸öÖ¸¶¨ÁË×Ô¶¨ÒåÒ³ÃæÄ£°åµÄÒ³ÃæÖнøÐеġ£

ʹÓÃVueµ¥Îļþ×é¼þ

Äã¿ÉÄÜÒѾ­¿´µ½¹ýÐí¶àʹÓÃVue.component·½Ê½À´¶¨ÒåÈ«¾Ö×é¼þµÄʾÀý¡£ÔÚ±¾ÎÄÖУ¬ÎÒ½«Ê¹ÓøüÇ¿´óµÄVueµ¥Îļþ×é¼þ¡£

µ¥Îļþ×é¼þ¾ßÓÐÐí¶àÓŵ㣬±ÈÈçÄÜÌṩԤ±àÒëµÄJavaScript £¬ÍêÕûÓï·¨¸ßÁÁ£¬CommonJS Ä£¿éÒÔ¼°×é¼þ×÷ÓÃÓòµÄCSSµÈ¡£Í¨¹ývueµ¥Îļþ×é¼þ¿ÉÒÔ¶Ôǰ¶ËÏîÄ¿½øÐÐÄ£¿é»¯¿ª·¢£¬²¢ÇÒʹ´úÂë¹ÜÀí¸üÇåÎúÃ÷ÁË¡£

ÏÖÔÚÄãÒѾ­¶Ô±¾ÎÄÉæ¼°µÄ¼¼ÊõºÍÔ­ÀíÓÐÁËÒ»¸ö´óÖµÄÁ˽⣬½ÓÏÂÀ´¾ÍÈÃÎÒÃÇ¿ªÊ¼¿ª·¢°É¡£

ʹÓÃVue CLIÉèÖñ¾µØ¿ª·¢¹¤×÷»·¾³

¿ª·¢Vueµ¥Îļþ×é¼þ½«»áÐèҪʹÓÃһϵÁй¤¾ß£¬ÈçVue Loader£¬Webpack£¬BabelµÈ¡£µ«ÊÇ£¬²»Òªº¦Å£¬ÎÒ»á×öһЩ±ØÒªµÄ¼ò»¯£¬Ê¡ÂÔ´¦ÀíÅäÖÃÎļþµÄ²½Öè¡£

ʹÓÃVue CLI ¿ÉÒÔ¿ìËÙ¹¹½¨Ò»¸öVueÓ¦ÓóÌÐò¡£Vue CLI ÊÇÒ»¸ö»ùÓÚ Vue.js ½øÐпìËÙ¿ª·¢µÄÍêÕûϵͳ£¬ËüÈ·±£Á˸÷ÖÖ¹¹½¨¹¤¾ßÄܹ»»ùÓÚÖÇÄܵÄĬÈÏÅäÖü´¿ÉƽÎÈÏνӣ¬ÕâÑùÄã¿ÉÒÔרעÔÚ׫дӦÓÃÉÏ£¬¶ø²»±Ø»¨ºÃ¼¸ÌìÈ¥¾À½áÅäÖõÄÎÊÌâ¡£ËùÒÔÈÃÎÒÃÇÏÈÉèÖÃÒ»ÏÂVue CLI ¡£

µÚ1²½£º°²×°Node.js.

ҪʹÓÃVue CLI£¬ÄãÐèÒªÔÚϵͳÉϰ²×°Node.js £¨node°æ±¾´óÓÚ8.x£¬npm°æ±¾´óÓÚ3.x£©¡£Äú¿ÉÒÔ´ÓNode.jsÏÂÔØÒ³ÃæÏÂÔØÊÊÓÃÓÚÄúµÄƽ̨µÄ°²×°³ÌÐò¡£°²×°Íê³Éºó£¬Çë²âÊÔÒÔÏÂÃüÁîÊÇ·ñÉúЧ£º

node --version
npm --version

µÚ2²½£º°²×°Vue-CLI

½ÓÏÂÀ´£¬´ò¿ªÏµÍ³µÄÖÕ¶Ë £¬ÔËÐÐnpm install -g vue-cliÃüÁîÈ«¾Ö°²×°Vue-CLI£¨2.x£©¡£Íê³Éºó£¬ÔËÐÐvue --versionÃüÁî½øÐвâÊÔ¡£

ÉèÖÃVue-CLI£¨2.x£©ÒÔ´´½¨VueÓ¦ÓóÌÐò

ÔÚÉÏÃæµÄͼƬÖУ¬Äã»á·¢ÏÖ£¬ÎÒ»¹ÓÃnpm install -g eslintÈ«¾Ö°²×°ÁËESLintÈ«¾Ö·¶Î§ÄÚÓë ¡£ÕâÊÇÒòΪÎÒʹÓÃVisual Studio CodeºÍÏà¹Ø²å¼þÀ´¼ì²éJavaScript´úÂëµÄ¹æ·¶»¯¡£Äã¿ÉÒÔʹÓÃÈκÎÄãϲ°®µÄ´úÂë±à¼­Æ÷£¬µ«Ç¿ÁÒ½¨ÒéÄãÅäÖÃÒ»¸öJavaScriptµÄ´úÂë¼ì²é¹¤¾ß£¬±ÈÈ磨 ESLint£¬ JSHint £¬ StandardJS£©¡£

Íê³É»ù±¾ÉèÖúó£¬ÈÃÎÒÃÇʹÓÃVue CLIÔÚWordPressµÄÖ÷ÌâÎļþ¼ÐÖд´½¨Ò»¸öÏîÄ¿¡£

ʹÓÃVue CLI´´½¨VueÏîÄ¿

ÎÒʹÓÃÁËvueÌṩµÄ¹Ù·½Ä£°åwebpack-simple ¡£µ±È»£¬Äã¿ÉÒÔ¸ù¾ÝÄãµÄÐèÇóʹÓøü¸´ÔÓµÄÔ¤ÉèÄ£°å»òÕßÊÖ¶¯Ñ¡Ôñ¡£

Vue CLIʹÓÃWebpackÀ´ÅäÖÃVueÏîÄ¿£¬²¢ÌṩÁË¿ª·¢·þÎñÆ÷ºÍÆäËûÏÖ´ú¹¹½¨¹¤¾ß¡£ÕâΪÎÒÃÇÌṩÁ˷dz£±ã½ÝµÄ¿ª·¢Á÷³Ì¡£³ý´ËÖ®Í⣬Ëü»¹ÔÊÐíÎÒÃÇÔÚ¿ª·¢ÆÚ¼äʹÓÃÏÂÒ»´úJavaScriptÓï·¨£¨ES6 / ES7£©±àд´úÂ룬ÔÚ·¢²¼Ê±±àÒë³É¶Ôä¯ÀÀÆ÷¼æÈÝÐÔ¸üºÃµÄES5Óï·¨µÄJavaScript°ü¡£

µÚ1²½£ºÔÚWordPressÖÐÉèÖÃVueÓ¦ÓóÌÐò

Òª´´½¨Ò»¸övueÏîÄ¿£¬Ê×ÏÈÔÚÖն˽øÈëµ½Ò»¸öWordPressµÄÖ÷ÌâĿ¼»ò×ÓÖ÷ÌâĿ¼£¨Õâ¸öÖ÷ÌâÒªÔÚWordPressºǫ́¼¤»îÆôÓã©¡£

½øÈëµ½WordPressÖ÷ÌâĿ¼

µÚ2²½£ºÊ¹ÓÃWebpack-SimpleÄ£°å´´½¨VueÓ¦ÓóÌÐò

½ÓÏÂÀ´£¬ÔËÐÐÃüÁîvue init webpack-simple project-name £¬°Ñproject-name Ìæ»»³ÉÄãµÄÏîÄ¿Ãû×Ö £¨ÔÚÎÒµÄʾÀýÖÐΪspa£©£¬È»ºó°´ÕÕÆÁÄ»ÉϵÄ˵Ã÷²Ù×÷¡£Õ⽫ÔÚ<project-name>Ŀ¼Öд´½¨VueÏîÄ¿£¬ÆäÖаüº¬ÏÖ´ú¹¹½¨¹¤¾ßµÄÅäÖá£

×¢Ò⣺Èç¹ûÄãÏÂÔØÊ¹ÓÃÎÒµÄvuetwentyseventeen×ÓÖ÷Ì⣬ÇëÌø¹ývue init´Ë²½¡£Îļþ¼ÐÖÐÒѾ­°üº¬ÁËspaÕâ¸övueÏîÄ¿¡£

ʹÓÃvue initºÍWebpackÄ£°å´´½¨VueÓ¦ÓóÌÐò

µÚ3²½£º°²×°¿ª·¢ÒÀÀµÏî

ÔÚд´½¨µÄÏîÄ¿Îļþ¼ÐÖÐÄã»á¿´µ½µ½Ò»¸öÃûΪpackage.jsonµÄÎļþ¡£Ëü»ù±¾ÉÏÁгöÁËËùÓÐÏîÄ¿ËùÐèµÄ¿ª·¢¹¤¾ßºÍÒÀÀµ°ü¡£ÇëÔËÐÐÒÔÏÂÃüÁîÀ´°²×°ÕâЩËùÐèµÄ¹¤¾ßºÍ¿â£º

cd spa

npm install

NPM½«×Ô¶¯°ÑËùÓÐÒÀÀµ°üÏÂÔØ²¢°²×°µ½node_modulesµÄÎļþ¼ÐÖС£

ʹÓÃNPM°²×°¿ª·¢ÒÀÀµÏî

Çë×¢Ò⣬²»ÒªÔÚʵ¼ÊÔËÐеÄÏßÉÏWordPressÖв¿ÊðÈκÎÕâЩÏÂÔØµÄÒÀÀµÎļþ¡£ËüÃǽö½öÊÇÔÚ¿ª·¢½×¶Î²ÅÐèÒª¡£

µÚ4²½£ºÔÚWordPressÖÐÆô¶¯Webpack Dev Server

ËäÈ»¿´ÆðÀ´ºÜÆæ¹Ö£¬µ«ÄãÐèÒªÔÚÔËÐÐWordPress±¾µØ·þÎñ£¨ÈçXAMP£¬WAMP£¬VVVµÈ£©µÄͬʱ£¬ÔÙÔËÐÐÔÚÉÏÒ»²½ÖÐ×Ô¶¯°²×°µÄWebpack¿ª·¢·þÎñÆ÷£¬Ê¹ËüÃÇһͬ¹¤×÷¡£

Ô­ÒòÊÇÕâÑùµÄ£¬ÎÒÃǵĵ¥Ò³ÃæÓ¦ÓÃʵ¼ÊÉÏÊǶÀÁ¢ÓÚºó¶ËµÄÒ»¸ö´¿¾²Ì¬Ó¦Óã¬ÔÚ¿ª·¢½×¶ÎÎÒÃDZàдµÄÊÇvueµ¥Îļþ×é¼þ£¬ÐèÒªÓÉWebpack·þÎñÆ÷À´Ìṩ×Ô¶¯±àÒëºÍÈȸüС£Ö»ÓÐÔÚ¿ª·¢Íê³Éºó£¬ÎÒÃDzÅÄÜÏòWordPressÌṩ×îÖÕ±àÒëºÃµÄJavaScript°ü¡£

ÒªÆô¶¯¿ª·¢·þÎñÆ÷£¬Çë´ÓVueÏîÄ¿Îļþ¼ÐÔËÐÐÃüÁînpm run dev ¡£È»ºó£¬Ä㽫¿´µ½ÔÚä¯ÀÀÆ÷ÖÐ×Ô¶¯´ò¿ªlocalhost:8080£¬Ò²¾ÍÊÇvueµÄ³õʼ»¯ÏîÄ¿¡£

ÔËÐÐWebpack¿ª·¢·þÎñÆ÷

Vue.jsµÄ±àÒë´ò°ü

Èç¹ûÄãÔÚä¯ÀÀÆ÷ÖÐ²é¿´ÍøÒ³Ô´´úÂ룬Äú»á·¢ÏÖ¸ÃÒ³ÃæÖ»°üº¬Ò»¸öJavaScriptÎļþ ¨C build.js ¡£ÕâÊÇÒòΪµ±ÄãÔËÐпª·¢·þÎñÆ÷ʱ£¬Webpack»á×Ô¶¯±àÒë £¬Ê¹Óò»Í¬µÄloaders´¦ÀíÏîÄ¿µÄËùÓÐÒÀÀµÎļþ£¬×îºó´ò°üΪһ¸öä¯ÀÀÆ÷¿Éʶ±ðµÄJavaScriptÎļþ¡£

µ«Çë×¢Ò⣬¸ÃÎļþʵ¼ÊÉϲ¢Ã»Óб£´æÔÚÓÚÄúµÄϵͳÉÏ£¬¶øÊÇÓÉNodeºÍWebpackÔÚÔËÐÐʱ¶¯Ì¬Éú³ÉµÄ¡£

ÓÉWebpackÔÚÔËÐÐʱ¶¯Ì¬Éú³ÉµÄJavaScript°ü

ÒªÉú³É¿ÉÒÔ·¢²¼µÄJavaScriptÎļþ£¬Äã±ØÐëÔËÐÐnpm run build £¬ÎÒÃǽ«ÔÚÉÔºó½×¶ÎÌáµ½¡£

ÏÖÔÚÎÒÃÇÓÐÁËÒ»¸ö¹¦ÄÜÆëÈ«µÄVueÓ¦Óã¬ÊÇÓɰ²×°ÔÚWordPressÖ÷ÌâÎļþ¼ÐÄÚµÄWebpack¿ª·¢·þÎñÆ÷À´Ìṩ·þÎñµÄ¡£µ«ÊÇ£¬Ïֽ׶γýÁËÎïÀí°²×°Â·¾¶ËüÓëWordPressûÓÐһëǮ¹ØÏµ¡£ÄÇô£¬ÈÃÎÒÃÇÀ´¿´¿´ÈçºÎ½«VueÓ¦ÓÃÓëWordPress½øÐм¯³É¡£

½«Vue ÓëWordPress¼¯³É

½«VueÓ¦ÓÃÓëWordPress¼¯³É»ù±¾ÉÏÐèÒªÈý¸öÌõ¼þ£º

1.WordPressÖеÄDOMÔªËØ£¬ÓÃ×öVueʵÀýµÄ¹ÒÔØµã

2.ÔÚWordPressµÄÅŶÓÒýÓûúÖÆ£¨Enqueue Scripts£©ÖмÓÈëVueµÄ±àÒëÎļþ£¨Èçbuild.js£©

3.ÔÚVueÖÐÖ¸¶¨WordPressµÄDOMÔªËØ

ÔÚWordPressÖÐΪ VueÌṩDOMÔªËØ

Äã¿ÉÄÜÏ£Íû½«VueʵÀý¹ÒÔÚµ¥¸ö»ò¶à¸öWordPressÒ³ÃæÉÏ£¬»òÕßÓÐÌõ¼þµØ¹ÒÔØ¡£²»¹ÜÄÇÖÖ·½Ê½£¬VueËùÐè¶¼ÊÇÒ»¸öWordPressÒ³ÃæÉϵÄDOMÔªËØ¡£

Ϊ´Ë£¬Äã¿ÉÒÔʹÓÃWordPressµÄ Template Hierarchy£¨Ä£°å²ã´Î£©À´È·¶¨ÐèÒª±à¼­ÄĸöÄ£°åÎļþ¡£ÔÚÎÒµÄʾÀýÖУ¬ÎÒÏ£ÍûÕâ¸öVue SPA³öÏÖÔÚÈÎÒâÒ»¸öÖ¸¶¨ÁË×Ô¶¨ÒåÒ³ÃæÄ£°å£¨Custom Page Template£©µÄWordPressÒ³ÃæÉÏ¡£ÄãÒ²¿ÉÒÔʹÓÃÖ÷ÌâµÄÒ³ÃæÄ£°åÀ´Ö¸¶¨Ìض¨Ò³Ã棬ÕâÈ¡¾öÓÚÄãµÄÐèÇó¡£

ÔÚÎÒµÄʾÀý×ÓÖ÷ÌâÖУ¬templates/vue-search-app-template.php ¾ÍÊÇÒ»¸ö×Ô¶¨ÒåÒ³ÃæÄ£°å£¬ËüΪVueÌṩÁËDOMÔªËØ#wp-vue-app ¡£

ÔÚWordPressÖÐ×¢²áVueÓ¦ÓóÌÐò

ÒªÈÃWordPressÄܸÐÖªµ½VueÓ¦Óã¬Äã±ØÐëÔÚWordPressÖÐΪVue½øÐÐ×¢²á/ÅÅ¶Ó £¨ register/enqueue£© ¡£ÒòΪÔÚ¿ª·¢ÆÚ¼äÐ޸ĴúÂëÊÇºÜÆµ·±µÄ£¬Ã¿´ÎÐÞ¸ÄÍêvue´úÂëÖ®ºó¶¼ÊÖ¶¯¹¹½¨Ò»´ÎÊǺܲ»·½±ãµÄ£¬ÎªÁË·½±ã£¬ÎÒÃÇ¿ÉÒÔÀûÓÃwebpackµÄ¶¯Ì¬¹¹½¨¹¦ÄÜ¡£

ÔËÐÐWebpack¿ª·¢·þÎñÆ÷Ö®ºó£¬ÎÒÃǾͿÉÒÔʹÓ÷¾¶http://localhost:8080/dist/build.jsÔÚWordPressÖÐ×¢²áVueʵÀý¡£

vue´úÂëÐ޸ı£´æºó£¬Webpack¿ª·¢·þÎñÆ÷¾Í»á×Ô¶¯±àÒë²¢×Ô¶¯¸üÐÂÒ³Ãæ ¡£

ÔÚ¿ª·¢ÆÚ¼äÔÚWordPressÖÐ×¢²á¶¯Ì¬¹¹½¨Â·¾¶

Õâ¾ÍÊÇΪʲôÔÚ¿ª·¢¹ý³ÌÖÐÎÒÃDZØÐëͬʱÔËÐÐWordPressµÄ±¾µØ·þÎñÆ÷ºÍWebpack¿ª·¢·þÎñÆ÷µÄÔ­Òò¡£¿ª·¢Íê³Éºó£¬Äã±ØÐë°Ñ·¾¶Ð޸ijÉͨ¹ýnpm run buildÉú³ÉµÄÎļþ·¾¶¡£

ÔÚ¿ª·¢Ö®ºóÔÚWordPressÖÐ×¢²áʵ¼ÊµÄ¹¹½¨Îļþ

ÁíÇë×¢Ò⣬³ýÁË×îÖյıàÒëÎļþÖ®Í⣬VueÏîÄ¿Îļþ¼ÐÖеÄËùÓÐÎļþ¶¼²»ÐèÒªËæWordPressÖ÷ÌâÒ»Æð·¢²¼¡£ÕâЩ¶¼½öÔÚ¿ª·¢ÆÚ¼äÐèÒª£¬²¢ÇÒÿ´ÎÐ޸ĺ󶼱ØÐë½øÐÐÖØÐ±àÒë´ò°ü¡£

ÔÚÎÒµÄʾÀýÖ÷ÌâÖУ¬ÎÒÔÚincludes/enqueue-scripts.php×¢²áÁËVue±àÒëºóµÄÎļþµØÖ·¡£

ÔÚVueÖÐÖ¸¶¨WordPressÖеÄDOM¹ÒÔØµã

×îºó£¬ÒªÔÚWordPressÖмÓÔØVueÓ¦ÓóÌÐò£¬ËùÐèµÄÖ»ÊǸæËßVueÒª¹ÒÔØµÄλÖá£ÒªÔÚvueÖÐÖ¸¶¨WordPress DOMÔªËØÓÐÁ½ÖÖ·½·¨£¬Äã¿ÉÒÔÔÚmain.jsʹÓÃel£¬»òÕߣ¬Ò²¿ÉÒÔʹÓÃ$mount·½·¨¡£

ÔÚÎÒµÄʾÀýÖУ¬ÎÒ½«vueÓ¦ÓùÒÔØÔÚ×Ô¶¨ÒåÒ³ÃæÄ£°åµÄDIVÈÝÆ÷#wp-vue-app ÖС£

ʹÓá¯el¡¯ÔÚVueÖÐÖ¸¶¨¹ÒÔØµã

¾ÍÕâÑù£¬Ò»¸öVue³õʼÏîÄ¿½«¿ÉÒÔÔÚWordPressÖÐÏÔʾÁË¡£

ÔÚWordPressÖÐäÖȾVueÓ¦ÓóÌÐò

¿´ÆðÀ´²»´í£¬VueÓ¦ÓÃÒѾ­³É¹¦×¢ÈëWordPress£¬ÄãÏÖÔÚ¿ÉÒÔʹÓÃVue¹¹½¨¼¸ºõÈκÎÄãÏëÒªµÄ¶«Î÷¡£ÄÇô£¬ÈÃÎÒÃÇÉîÈëÁ˽âһϵÄÓÃVueÀ´¹¹½¨ËÑË÷Ó¦ÓõÄÄÚÈÝ¡£

ÔÚWordPressÖй¹½¨µ¥Ò³ÃæËÑË÷Ó¦ÓÃ

Èç¹ûÄãÔÙ»ØÍ·¿´Ï ±¾ÎÄ¿ªÍ·µÄÁ÷³Ìͼ £¬Äú¾ÍÄܸüºÃµÄÀí½âÏÂÃæµÄËÑË÷Ó¦ÓóÊÏÖµÄ×îÖÕЧ¹û£º

ÔÚWordPressÖй¹½¨VueËÑË÷Ó¦ÓóÌÐò

ÏîÄ¿Îļþ¼ÐµÄ½á¹¹

ÎÒÓÃVueʾÀýÏîÄ¿×÷Ϊ»ù´¡£¬´ÓÖÐɾ³ýÁËspa/index.htmlºÍsrc/assets £¬µÃµ½ÁËÒÔÏÂÎļþ¼Ð½á¹¹£º

WordPressÖÐVueËÑË÷Ó¦ÓóÌÐòµÄÎļþ¼Ð½á¹¹

×ÓÖ÷ÌâµÄincludesÎļþ¼ÐÀïµÄ¸÷¸öPHPÎļþ¶¨ÒåÁËÏàÓ¦µÄ»Øµ÷º¯Êý£¬ÕâÑùÎÒ¿ÉÒÔֻʹÓÃÒ»¸öfunctions.phpÎļþÀ´ÉèÖÃWordPress Hooks £¨¹³×Óº¯Êý£©¡£ÎÒ¸üϲ»¶ÕâÖÖ·½·¨½«ËùÓÐÄÚÈÝ·ÅÔÚÒ»¸öfunctions.phpÎļþÖС£

°²×°ESLintºÍESNext¹¦ÄÜ£¨¿ÉÑ¡£©

Èç¹ûÄã´òËãʹÓÃESLint£¨ÎÒÇ¿ÁÒÍÆ¼ö£©»òESNext¹¦ÄÜ£¨ÈçAsync / Await£©£¬Ä㻹ÐèҪΪÏîÄ¿Ìí¼ÓһЩ¶îÍâµÄÒÀÀµ°ü¡£

ΪWordPressºÍVueÅäÖÃESLint

ΪÁËÅäÖÃESLint£¬ÎÒ°²×°ÁËeslint-plugin-vueºÍwodrdpressµÄ´úÂë¹æ·¶eslint-config-wordpress¡£ÏÈÍ£Ö¹¿ª·¢·þÎñÆ÷£¨Ctrl + C£©£¬È»ºó´ÓVueÏîÄ¿Îļþ¼ÐÖÐÔËÐÐÒÔÏÂÃüÁ

npm install --save-dev eslint eslint-plugin-vue

npm install --save-dev eslint-config-wordpress

½ÓÏÂÀ´£¬½«ÒÔÏÂÄÚÈÝÌí¼Óµ½.eslintrc.jsonÎļþÖУº

¡°extends¡±£º[¡°eslint£ºrecommended¡±£¬¡°wordpress¡±£¬¡°plugin£ºvue / recommended¡±]

Õ⽫ΪWordPressÉèÖÃJavaScript´úÂë¹æ·¶ £¬²¢ÉèÖÃvue¹Ù·½ÍƼöµÄeslintÔ¤Éè¹æÔò¡£ÅäºÏVS CodeÕâÑùµÄ´úÂë±à¼­Æ÷£¬²»½ö¿ÉÒԺܴó³Ì¶ÈµØ±ÜÃâ»ù±¾Óï·¨´íÎó£¬Ò²±£Ö¤ÁË´úÂëµÄ¿É¶ÁÐÔ¡£

ÔÚVisual Studio´úÂëÖÐʹÓÃESLint²¶»ñ´íÎó

ÉèÖÃBabelÒÔʹÓÃAsync / Await

BabelÉèÖó¬³öÁ˱¾Îĵķ¶Î§£¬ÓÃÒÔÏ·½·¨»ù±¾ÉÏ¿ÉÒÔÈÃÄãÔÚVueÏîÄ¿ÖÐʹÓÃES7 µÄAsync / AwaitÓï·¨¡£ÔËÐÐÒÔÏÂÃüÁîÌí¼Óbabel-preset-vue-app ¼´¿É£º

npm install --save-dev babel-preset-vue-app

È»ºó£¬ÔÚVueÏîÄ¿ÖеÄ.babelrcÎļþÖÐÌí¼ÓÔ¤É裨presets£©£º

"presets": [["env", { "modules": false }], "stage-3", "vue-app"]

Íê³Éºó£¬²»ÒªÍü¼ÇʹÓÃnpm run devÆô¶¯¿ª·¢·þÎñÆ÷¡£ÎÒÌṩµÄʾÀý×ÓÖ÷ÌâVue child themeÒѾ­ÎªÄãÅäÖúÃÁËËùÓÐÕâЩ£¬Òò´ËÄãÖ»ÐèҪͨ¹ýÔÚspaĿ¼ÖÐÔËÐÐnpm installÀ´°²×°¼´¿É¡£

´Óvue·ÃÎÊWordPressÊý¾Ý

VueÊÇÔÚä¯ÀÀÆ÷ÖÐÔËÐеÄJavaScript£¬Òò´Ë£¬ËüÎÞ·¨·ÃÎÊWordPressÖеÄÈκÎÊý¾Ý¡£ÒªÊ¹WordPressÊý¾Ý¿ÉÓÃÓÚVueÓ¦ÓóÌÐò£¬Äú±ØÐëʹÓÃwordpressµÄwp_localize_script º¯Êý¡£

ÎÒÔÚ×ÓÖ÷ÌâvuetwentyseventeenµÄincludes/enqueue-scripts.phpÖÐÍê³ÉÁËÕâ¸öÅäÖá£

ÉÏÃægistÀïµÄ×¢ÊÍÒѾ­ºÜÃ÷ÁË£¬ËùÒÔÎÒÔÚÕâÀï½âÊÍÒ»ÏÂÐèÒªÌṩ¸øVueÓ¦ÓóÌÐòµÄÊý¾Ý£º

1.wpData.template_directory_uri ¨C ÓÃÀ´¹¹½¨Ö÷ÌâÎļþ¼ÐÖо²Ì¬ÎļþµÄ·¾¶

2.wpData.rest_url ¨C ÓÃÀ´»ñÈ¡WPÊý¾ÝµÄ REST APIµØÖ·

3.wpData.app_path ¨C ÓÃÓÚÔËÐÐSPAµÄ WordPressÒ³ÃæµÄURLµØÖ·

4.wpData.post_categories ¨C wpµÄĿ¼£¬ÓÃÓÚ¹ýÂËÌõ¼þµÄ¸´Ñ¡¿ò

ÓÐÁËÕâЩ£¬ÎÒÃÇÖÕÓÚ¿ÉÒÔ¿ªÊ¼¿ª·¢vueµ¥Ò³ËÑË÷Ó¦Óõĵ¥Îļþ×é¼þÁË¡£

ʹÓÃVueµ¥Îļþ×é¼þ¹¹½¨µ¥Ò³ÃæËÑË÷Ó¦ÓÃ

²ÎÕÕ֮ǰµÄ×é¼þ¼Ü¹¹£¬ÎÒ¿ª·¢µÄµÚÒ»¸ö×é¼þÊÇAppDisplayComponent¡£ÈÃÎÒÃǽ«´Ó×î»ù±¾µÄ¹¦ÄÜ¿ªÊ¼£¬Õâ¸ö×é¼þ½öÏÔʾÌû×Ó±êÌ⣬ʹÓõÄÊÇJavaScriptÔ­ÉúµÄFetch APIºÍWordPressµÄÈÕÖ¾×ÊÔ´Api £¨Posts resource ¨C /wp/v2/posts£©¡£

AppDisplayPost×é¼þµÄ»ù±¾°æ±¾

AppDisplayPost×é¼þµÄ¼òµ¥°æ±¾

½ÓÏÂÀ´£¬ÎÒɾ³ýÁËApp.vueÀïÔ­ÓеÄʾÀýÄÚÈÝ£¬²¢ÓÃÏÂÃæµÄ·½Ê½µ÷ÓÃAppDisplayPost×é¼þÓÃÀ´ÔÚWordPressÒ³ÃæÉϳÊÏÖÈÕÖ¾£¬ÈçÏÂËùʾ£º

App.vueÀ´ÀïµÄAppDisplayPost×é¼þ

µ±È»£¬²¢²»ÊÇËùÓж«Î÷¶¼ÄÜÒ»´Î³É¹¦£¬Õâ¾ÍÊÇChrome²å¼þVue DevTools·¢»Ó×÷ÓõÄʱºòÁË¡£ÎÒ½¨ÒéÄãÒ²°²×°Ò»¸ö£¬Ëü¿ÉÒÔʹÓÃÓѺõĽçÃæ½øÐÐVueÓ¦Óõĵ÷ÊԺͼì²é£¬¶ø²»ÊÇÓúÜÍÁµÄ°ì·¨ËùÓÐÄÚÈݶ¼Êä³öµ½ä¯ÀÀÆ÷¿ØÖÆÌ¨¡£

ʹÓÃVue Devtoolsµ÷ÊÔVueÓ¦ÓÃ

ÎÒ»¹½¨ÒéÄãʹÓÃPostmanÖ®ÀàµÄAPI¹¤¾ßÓëWP REST API½øÐн»»¥¡£Õâ¿ÉÒÔ½ÚÊ¡ÄãºÜ¶àʱ¼ä£¬²¢ÇÒÊý¾ÝչʾҲ»á¸üÇåÎú£¬ÈÃÄã¸üÈÝÒײ鿴APIÏìÓ¦Öµ£º

ʹÓÃPostmanÖ®ÀàµÄREST¿Í»§¶ËÓëWordPress REST API½øÐн»»¥

µÚÒ»´Îµ÷ÊÔÔÚVueÓ¦ÓÃÖÐäÖȾWordPressÈÕ־ȷʵ»¨ÁËÎÒһЩʱ¼ä£¬µ«ÀûÓÃVue DevToolsºÍPostman½øÐÐÁ˼¸ÂÖ³¢ÊÔÖ®ºó¾Í½¥Èë¼Ñ¾³ÁË£¬ÕâÈÃÎҸоõ²»´í¡£ÎÒ»¹¾ö¶¨¶ÔWordPRESSµÄAPIĬÈÏÏìÓ¦½øÐÐÀ©Õ¹ÒÔÌí¼Ó×Ô¶¨ÒåÄÚÈÝ¡£

À©Õ¹WordPress REST APIµÄ×Ô¶¨ÒåÄÚÈÝ

WordPress REST APIµÄĬÈÏÏìÓ¦·Ç³£È«Ã棬µ«ËüºÜ¿ÉÄÜÎÞ·¨Âú×ãÄãµÄËùÓÐÐèÇó¡£

ÀýÈ磬Äã¿ÉÄÜÏ£ÍûÏÔʾ×÷ÕßÐÕÃû£¬ÆÀÂÛºÍÈÕÖ¾ËõÂÔͼ£¨ÌØÉ«Í¼Ïñ£©µÈÐÅÏ¢¡£Èç¹ûÄãÓÃPostman¶ÔÈÕÖ¾×ÊÔ´·¢Æð GETÇëÇó £¬Äã»á×¢Òâµ½ÕâЩÐÅÏ¢£¨×÷Õß¡¢ÆÀÂ۵ȣ©ÔÚĬÈÏÏìÓ¦ÖÐÊDz»ÄÜÖ±½ÓʹÓõģ¬ÐèÒª¸ù¾ÝÏìÓ¦ÀïµÃµ½µÄurl·¢Æð¶þ´ÎÇëÇó¡£

µ±È»£¬Äã¿ÉÒÔͨ¹ýÒ»¸ö¼òµ¥µÄ·½·¨À´»ñÈ¡¸ü¶àÐÅÏ¢£¬½«_embed=true²ÎÊýÌí¼Óµ½wp/v2/postsµØÖ·ºóÃæÔÙ·¢ÆðapiÇëÇó ¡£Ê¹ÓÃ_embed£¬API½«ÔÚÏìÓ¦ÖÐ×Ô¶¯Õ¹¿ªËùÓбê¼ÇΪembeddable: trueµÄ×ֶΡ£

¶ÔÓÚÎÒµÄVue µ¥Ò³ËÑË÷Ó¦ÓóÌÐò£¬ÎÒ¾ö¶¨À©Õ¹APIµÄÏìÓ¦£¬²¢Ìí¼ÓÒÔÏÂ×Ô¶¨ÒåÄÚÈÝ£º

À©Õ¹WordPress REST APIµÄĬÈÏÏìÓ¦

Èç¹ûÄã¿´Ò»ÏÂÎÒµÄ×ÓÖ÷ÌâÖÐAppDisplayPost×é¼þ£¬Äã»á×¢Òâµ½ÎÒʹÓõ½µÄ×Ö¶Îvue_meta²¢²»ÊÇAPIĬÈÏÏìÓ¦µÄÄÚÈÝ¡£ËüÊÇͨ¹ý×ÓÖ÷ÌâÖÐincludes/extend-api.phpÎļþµÄregister_rest_fieldº¯ÊýÌí¼ÓµÄ£¬ÆäÖеĴúÂë·Ç³£¼òµ¥¡£Èç¹ûÄãÏëÒªÁ˽â¸ü¶àÓйØÀ©Õ¹APIÏìÓ¦µÄ֪ʶ£¬Çë²é¿´REST API HandbookµÄ Modifying Reponses²¿·Ö¡£

½ÓÏÂÀ´£¬ÎÒ´´½¨ÁËÒ»¸öAppGetPostsµ¥Îļþ×é¼þ£¬°Ñ»ñÈ¡ÈÕÖ¾µÄ´úÂëÂß¼­Òƶ¯µ½ÆäÖУ¬AppDisplayPost×é¼þÖ»ÓÃÀ´ÏÔʾÈÕÖ¾¡£

AppGetPosts×é¼þ´ÓREST APIÖлñÈ¡Êý¾Ý

°Ñ»ñÈ¡ÈÕÖ¾µÄ´úÂë·ÖÀë³öÈ¥£¬Òâζ×ÅҪͨ¹ýprops½«Êý¾Ý´«µÝ¸øAppDisplayPosts×é¼þ ¡£

È»ºó£¬ÔÚAppGetPostsÖÐÎÒΪ»ñÈ¡µ½µÄÿƪÈÕÖ¾µÄµ÷ÓÃÁËAppDisplayPost ×é¼þ¡£

ÎÒ¾ö¶¨Ê¹ÓÃAxios¶ø²»ÊÇÔ­ÉúµÄFetch APIÀ´ÇëÇóWordPress REST API¡£ÄãÒ²¿ÉÒÔÑ¡ÔñʹÓÃjQuery £¨ÒѾ­°üº¬ÔÚWordPressÖУ©À´½øÐÐAJAXµ÷Óá£

×¢Ò⣺ҪʹÓÃAxios£¬Äã±ØÐëͨ¹ýÔÚVueÏîÄ¿Îļþ¼ÐÖÐÔËÐÐnpm install axios½øÐÐÉú²ú»·¾³Ïµİ²×° ¡£

ÓÃWordPress REST API»ñÈ¡½öÐè×Ö¶Î

ÎÒ×î½ü·¢ÏÖ¿ÉÒÔʹÓÃ_fields²ÎÊý´ÓAPIÏìÓ¦ÖлñÈ¡½öÐèµÄ×Ö¶Î ¡£Õâ»áÓÐЧ¼õÉÙapiµÄÍøÂç´«Êä¸ºÔØ£¬ÓÈÆäÊǵ±apiµÄJSONÏìÓ¦²»³öÏÖµÄÈÕÖ¾ÄÚÈÝʱ¡£Òª´ïµ½Õâ¸öЧ¹û£¬Ö»Ð轫_fieldsÓ붺ºÅ·Ö¸ôµÄ×Ö¶ÎÃû³ÆÒ»ÆðÌí¼Óµ½apiµÄurlºóÃæ¼´¿É£¬ÈçÏÂͼ

ʹÓÃ_fields²ÎÊýÓÐÑ¡ÔñµØ»ñÈ¡apiÏìÓ¦ÖеÄ×Ö¶Î

WordPress µÄREST APIÊÖ²áÖл¹Ã»ÓмÓÈë_fields²ÎÊýµÄÓ÷¨£¬Òò´ËÄã¿ÉÄÜÐèÒªÃÜÇйØ×¢ÏÂÊֲᡣ

´ÓWordPress REST API»ñÈ¡ËùÓÐÌû×Ó

Ŀǰ£¬ÎÞ·¨Í¨¹ýWordPress REST APIÒ»´ÎÐÔ»ñÈ¡ËùÓÐÈÕÖ¾¡£ËùÒÔ£¬Äã±ØÐëÏòAPIÑ­»··¢³ö¶à¸öÇëÇó£¬Ö±µ½»ñÈ¡µ½ÐèÒªµÄËùÓÐÊý¾ÝΪֹ¡£

ÎÒʹÓÃÁË·ÖÒ³²ÎÊý per_page=100ºÍwordpressµÄhttp±êÍ·×Ö¶ÎX-WP-Total£¨ÌṩÁ˼¯ºÏÖеļǼ×ÜÊý£©À´¼ÆËã×ܹ²Òª·¢Æð¼¸´ÎAPIÇëÇó¡£per_page²ÎÊýĿǰÉÏÏÞΪ100Ìõ¼Ç¼£¬Õâ¾ÍÊÇΪʲôÎÒÃÇÐèÒªÔÚ³¬¹ý100¸öÈÕ־ʱÏòAPI·¢³ö¶à¸öÇëÇó¡£ÊµÏÖ·½·¨Çë¿´ÏÂÃæµÄgistÖÐAppGetPosts×é¼þµÄget_postsº¯Êý£º

ÉÏÃæµÄgistÖÐ, get_posts º¯Êý»áÔÚ×é¼þ¹ÒÔØºó×Ô¶¯µ÷ÓÃ. ÎÒÓÃÁËES7 µÄAsync/Await д·¨½«¸Ãº¯Êý¶¨ÒåΪÒì²½º¯Êý£¨aynchronous function £©¡£

Äã»á×¢Òâµ½µÚÒ»¸öAxiosÇëÇóÊÇawait µÄд·¨-

const response = await axios£¨...) ¡£ÕâÊÇΪÁËÔÚµÚÒ»´ÎÇëÇó³É¹¦Ö®Ç°×èÖ¹ºóÐø´úÂëµÄÖ´ÐС£ÕâÑù×öÊÇΪÁË»ñÈ¡x-wp-totalÀ´¼ÆËãµÄAPIÇëÇó´ÎÊý¡£

µÚ¶þ¸öawaitÓ÷¨ÊÇÔÚ×îºó£¬ÔÚäÖȾÊý¾ÝǰÓà Promise.allÈ·±£ËùÓÐPromises¶¼³É¹¦Ö´ÐС£µ±È»£¬ÄãÒ²¿ÉÒÔÔÚÊý¾Ý¼ÓÔØÍê³Éºó¾ÍäÖȾÊý¾Ý£¬Á½ÖÖÓ÷¨¶¼ÔÚÏÂÃæµÄgistÀïÁгöÁË£º

µ±ËùÐèÊý¾Ý¼ÓÔØÍê³Éºó£¬ÎÒÔÚ¼ÆËãÊôÐÔÖÐÌí¼ÓÁËËÑË÷¹Ø¼ü×ÖºÍÏàÓ¦µÄËÑË÷Âß¼­¡£ÔÚÏÂÃæµÄgistÖУ¬Äã¿ÉÒÔ¿´µ½ÎÒÊÇÈçºÎÓà FilteredResults À´¹ýÂË wpPosts Êý¾Ý²¢µ÷Óà AppDisplayPost×é¼þÀ´ÏÔʾ½á¹ûµÄ¡£

AppQuickSearchºÍAppFilterSwitches×é¼þ

ÏÖÔÚAppGetPosts¿ÉÒԺܺõع¤×÷ÁË£¬Äܹ»´¦ÀíÊý¾Ý»ñÈ¡ºÍÈÕÖ¾ËÑË÷£¬È»ºóÎÒ½«Óû§ÊäÈë¿òÒÆ¶¯µ½¸¸×é¼þAppQuickSearchÖУ¬²¢Ê¹ÓÃprops´«µÝÊý¾Ý¡£

ÎÒ´´½¨ÁËÒ»¸öеÄ×Ó×é¼þAppFilterSwitches ÓÃÀ´ÏÔʾÌõ¼þ¸´Ñ¡¿ò£¨wpĿ¼ÁÐ±í£¬Êý¾ÝÀ´Ô´ÊÇWordPressµÄ¾Ö²¿¶ÔÏó wpData£©£¬Õâ¸ö×Ó×é¼þ»á´¥·¢£¨emits£©Ò»¸ö×Ô¶¨ÒåʼþonFilterToggle £¬AppQuickSearch×öΪ¸¸×é¼þ±ØÐëÈ¥ÕìÌýÕâ¸öʼþ¡£

×îºó£¬ËùÓÐ×é¼þ¶¼ºÏ²¢µ½AppQuickSearch

×îºó£¬ÔËÐÐnpm run buildÉú³É×îÖյıàÒëÎļþ¡£

ʹÓÃnpm run buildÉú³É×îÖÕ¹¹½¨

Èç¹ûÄã×ßµ½ÕâÒ»²½ÁË£¬ÄãÓ¦¸ÃÄܺÜÇáËɵÄ̽Ë÷Õâ¸övueÓ¦ÓÃµÄÆäÓಿ·Ö¡£×îÖÕ°æ±¾µÄ×é¼þȷʵÓкܶ࣬µ«ËüÃǽ¨Á¢ÔÚÄã¸Õ¿´µ½µÄËùÓÐÄÚÈÝÖ®Éϵġ£

̽Ë÷·Óɺͱ£³Ö»î¶¯µÄ×é¼þ

ËäÈ»ÎÒÃǵĿìËÙËÑË÷µ¥Ò³Ó¦Óõ½´Ë¾Í¿ÉÒÔ½áÊøÁË£¬µ«ÊÇΪÁËÑÝʾһÏÂvueµÄ·ÓÉ»úÖÆ£¨Vue routing£©ºÍ×é¼þµÄÖØ¸´ÀûÓã¬ÎÒÓÖÌí¼ÓÁËÁíÒ»¸ö×é¼þAppCustomSearch¡£

Äã¿ÉÒÔÔÚspa/src/app-routes.jsÕÒµ½Â·Óɹ¦ÄÜ£¬ËüÌṩÁ½¸öµ¼º½Á´½ÓAppQuickSearch £¬ AppCustomSearch£¬²¢ÌṩÁ˵¼º½Á´½ÓºÍ×é¼þÖ®¼äµÄÓ³Éä¹ØÏµ¡£Vue RouterµÄÄÚÈݳ¬³öÁ˱¾Îĵķ¶Î§£¬Èç¹ûÄãÏëÔÚWordPressÒ³ÃæÉÏʹÓÃVue·ÓÉ£¬Çë¼ÇסVue½«Ê¹ÓÃ'#'À´Ä£ÄâÒ»¸öÍêÕûµÄ URL£¬ÕâÑùµ± URL ¸Ä±äʱ£¬Ò³Ãæ²»»áÖØÐ¼ÓÔØ¡£Èç¹ûÄã³¢ÊÔÈ¥µôurlÀïµÄ#Ö±½Ó·ÃÎÊÔÚapp-routers.jsÀﶨÒåµÄ·ÓÉ£¬ÄÇôÕâ¸öµØÖ·»á±» WordPress REST API½Ó¹Ü£¬ÒòΪWordPress apiÀﲢûÓÐÕâ¸öµØÖ·£¬ËùÒÔ×îÖÕ½«ÕÒ²»µ½Ò³Ãæ²¢·µ»Ø404¡£

App.vueÎļþÊÇ×Ü×é¼þ£¬ÀïÃæµ÷ÓÃÁËAppNavigationºÍrouter-view×é¼þ¡£Äã»á×¢Òâµ½router-view±»°ükeep-alive ×é¼þÖм䣬 ÕâÊÇÒòΪʹÓÃkeep-alive×é¼þ¿ÉÒÔ»º´æ·Ç»î¶¯×é¼þ£¬ÒԱ㱣Áô×é¼þ״̬£¬±ÜÃâÔÚAppQuickSearchºÍAppCustomSearchÖ®¼äÇл»×é¼þÊ±ÖØÐÂäÖȾ ¡£

×ܽá

Ï£ÍûÕâÆªÎÄÕ¶ÔÄãÓÐÓá£Äã¿ÉÒÔÔÚÕâÀïÏÂÔØÕâ¸ö×ÓÖ÷ÌâµÄÎļþ £¬µ±×÷Ò»¸öÁ·ÊÖÏîÄ¿À´Ìá¸ßÄãµÄWordPressºÍJavaScript¼¼ÄÜ¡£

Ô­ÎÄÁ´½Ó£ºCreating a Hybrid Single Page App in WordPress with VueJS

Ïà¹ØÎÄÕÂ

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

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

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

 
   
3827 ´Îä¯ÀÀ       28