当前位置: 首页 > Web前端 > vue.js

vue3效率提升主要有哪些方面?

时间:2023-04-01 00:29:04 vue.js

vue3.0鐨勫悇绉嶆€ц兘杩樻槸寰堜笉閿欑殑銆備笌vue2.0鐩告瘮锛岀‘瀹炴槸涓婁簡涓€涓彴闃躲€傛嵁璇村鎴风娓叉煋鏁堢巼姣攙ue2楂?.3~2鍊嶏紝SSR娓叉煋鏁堢巼姣攙ue2楂?~2鍊嶃€?娆°€傞潰璇曟椂涔熷彲鑳戒細琚棶鍒般€傪煋岄潤鎬佸崌绾ue涓湁缂栬瘧鍣紝vue3鐨刾ackage.json鏂囦欢涓湁@vue/compiler-sfc锛寁ue2涓湁vue-template-compiler锛岃繖涓や釜鏄紪璇戝櫒锛屼細缂栬瘧鎴戜滑鐨則emplate涓簉ender鍑芥暟锛寁ue3涓殑缂栬瘧鍣ㄩ潪甯告櫤鑳姐€傚湪缂栬瘧杩囩▼涓紝瀹冨彲浠ユ壘鍑哄摢浜涜妭鐐规槸闈欐€佽妭鐐癸紝浠€涔堟槸闈欐€佽妭鐐癸紵闈欐€佽妭鐐规槸涓€涓厓绱犺妭鐐癸紝杩欎釜鑺傜偣涓病鏈夊姩鎬佸唴瀹癸紝涔熷氨鏄娌℃湁缁戝畾鍔ㄦ€佸睘鎬с€傝繖涓彨鍋氶潤鎬佽妭鐐癸紝姣斿锛?template>涓婇潰浠g爜涓殑img鏄竴涓潤鎬佽妭鐐癸紝瀹冩病鏈夌粦瀹氫换浣曞姩鎬佸唴瀹癸紝浣嗘槸vue3缂栬瘧鍣ㄤ細鎵惧埌闈欐€佽妭鐐癸紝鐒跺悗鍗囩骇瀹冿紝浣嗘槸鍦╲ue2涓苟涓嶅叧蹇冨畠鏄潤鎬佽妭鐐硅繕鏄竴涓姩鎬佽妭鐐癸紝鎿嶄綔鐚涘铏庛€備笅闈㈠姣斾竴涓嬶細//vue2鐨勯潤鎬佽妭鐐箁ender(){//鍒涘缓涓€涓櫄鎷熻妭鐐筯1锛屾病鏈変换浣曞睘鎬э紝鍙湁鍐呭鏄€渇orensic鈥濓紝缂栬瘧鍚?h1>forensiccreateVNode("h1",null,"娉曞尰");//....鍏朵粬浠g爜}//vue3鐨勯潤鎬佽妭鐐筩onsthoisted=createVNode("h1",null,"forensic");functionrender(){//鐩存帴浣跨敤hoisted鍗冲彲}鍦╲ue3涓紝璁や负鏃㈢劧杩欐槸涓€涓潤鎬佽妭鐐癸紝鑲畾涓嶄細鍙樼殑锛屼笉鍙兘璇磋繖娆1鍏冪礌鐨勫唴瀹瑰彇璇侊紝涓嬫h2鍏冪礌鐨勫唴瀹规槸鍒殑锛屾墍浠ue3璁や负鏃㈢劧鏄竴涓潤鎬佽妭鐐癸紝涓嶉渶瑕佸湪render鍑芥暟涓垱寤猴紝鍥犱负涓€鏃︽暟鎹彂鐢熷彉鍖栵紝render鍑芥暟浼氬弽澶嶈繍琛岋紝鐒跺悗閲嶆柊鍒涘缓闈欐€佽妭鐐癸紝鎵€浠ヤ负浜嗘彁楂樻晥鐜囷紝鍦╲ue3涓紝浼氬崌绾taticnode鍒皉ender鍑芥暟涔嬪锛岃繖鏍烽潤鎬佽妭鐐瑰彧浼氳鍒涘缓涓€娆★紝鐒跺悗鐩存帴鍦╮ender鍑芥暟涓娇鐢ㄥ畠銆傜ず渚嬶細杩愯涓€涓柊寤虹殑vue3椤圭洰锛屽湪鎺у埗鍙板彲浠ユ竻妤氱殑鐪嬪埌闈欐€佽妭鐐瑰凡缁忔彁鍗囧埌澶栭儴浜嗐€傝繖灏辨槸闈欐€佽妭鐐圭殑鎻愬崌銆傚叾瀹炰笉浠呴潤鎬佽妭鐐逛細琚彁鍗囷紝闈欐€佸睘鎬т篃浼氳鎻愬崌锛宱k锛屾垜浠潵鐪嬩竴涓嬶細渚嬪瓙锛氳繖鏄痸ue3鏂板缓椤圭洰涓殑APP.vue缁勪欢锛屾坊鍔犱竴涓猦1鍏冪礌鑺傜偣锛宲ay娉ㄦ剰闈欐€佽妭鐐癸紝鏄姩鎬佺殑锛屽洜涓哄唴瀹规槸鍔ㄦ€佺殑锛屽彧鏈夊睘鎬ф槸闈欐€佺殑//APP.vue浠g爜鏁堟灉濡備笅锛氿煃掗瀛楃涓插寲鐪熺殑寰堝己澶э紝鐗瑰埆浣╂湇锛屾垜浠彲浠ュ洖鎯充竴涓嬪湪骞虫椂鐨刅ue寮€鍙戣繃绋嬩腑锛岀粍浠朵腑鐨勫姩鎬佸厓绱犲苟涓嶅锛屽ぇ閮ㄥ垎閮芥槸闈欐€佸厓绱犮€備妇涓牀瀛愷煂帮細

Forensic

  • 鑿滃崟
  • 鑿滃崟
  • 鑿滃崟
  • 鑿滃崟
  • 鑿滃崟
  • {{user.name}}
    杩欎釜缁勪欢涓紝闄や簡span鍏冪礌鏄姩鎬佸厓绱犲锛屽叾浣欓兘鏄潤鎬佽妭鐐癸紝涓€鑸彲浠ヨ鏄姩鎬佸拰闈欐€侊紝鍔ㄦ€佸唴瀹?闈欐€佸唴瀹癸紝姣斿€艰秺灏忥紝闈欐€佸唴瀹硅秺澶氾紝姣斿€艰秺澶э紝鍔ㄦ€佸唴瀹硅秺澶氾紝vue3缂栬瘧鍣ㄤ細寰堣仾鏄庣殑鍙戠幇杩欎竴鐐癸紝褰撶紪璇戝櫒閬囧埌澶ч噺杩炵画鐨勯潤鎬佸唴瀹规椂锛屽畠浼氱洿鎺ユ妸瀹冪紪璇戞垚涓€涓櫘閫氱殑瀛楃涓茶妭鐐癸紝鍥犱负瀹冪煡閬撹繖浜涘唴瀹规案杩滀笉浼氭敼鍙橈紝鑰屼笖閮芥槸闈欐€佽妭鐐广€傪煉夋敞鎰忥細鍙兘瀵瑰ぇ閲忚繛缁殑闈欐€佸唴瀹硅繘琛岄瀛楃涓插寲锛屽垏璁帮紒鐩墠锛屽彧鏈?0涓繛缁殑闈欐€佽妭鐐逛細琚瀛楃涓插寲銆備絾鏄湪vue2涓紝姣忎釜鍏冪礌閮戒細鍙樻垚涓€涓櫄鎷熻妭鐐癸紝澶ч噺鐨勮櫄鎷熻妭鐐桂煒憋紝閮芥槸闈欐€佽妭鐐癸紝鑰屽湪vue3涓紝浼氭櫤鑳界殑鎵惧埌杩欎釜鏈夌偣const_hoisted_1=/*#__PURE__*///createStaticVNode闈欐€佽妭鐐瑰惈涔塤createStaticVNode("

    forensic

  • 鑿滃崟
  • 鑿滃崟
  • 鑿滃崟
  • 鑿滃崟
  • 鑿滃崟
  • ",1锛夌湅鐪嬭崏鍥撅紝鎰熷彈vue3鐨勯瓍鍔涳細馃ゥ缂撳瓨浜嬩欢澶勭悊鍑芥暟涓句釜鏍楀瓙馃尠锛?button@click="count++">plus姣旇緝澶勭悊鏂规硶锛?/vue2澶勭悊鏂规硶render(ctx){returncreateVNode("button",{onclick:function($event){ctx.count++;}})}//vue3澶勭悊鏂规硶render(ctx,_cache){returncreateVNode("button",{onclick:cache[0]||(cache[0]=>($event)=>(ctx.count++))})}鍦╲ue2涓垱寤轰竴涓櫄鎷熻妭鐐筨utton锛屽睘鎬т腑澶氫簡涓€涓簨浠秓nclick锛屽唴瀹逛负count++锛屽湪vue3涓湁缂撳瓨锛岃涓鸿繖閲岀殑浜嬩欢澶勭悊涓嶄細鏀瑰彉锛屽氨涓嶈浜嗛偅绗竴娆℃覆鏌撴槸涓€涓簨浠跺嚱鏁帮紝涓嬫浼氬彉鎴愬埆鐨勪笢瑗匡紝鎵€浠ue3浼氭櫤鑳界殑鍙戠幇杩欎釜锛岀劧鍚庡仛缂撳瓨澶勭悊銆傚畠浼氬厛鐪嬬紦瀛樹腑鏈夋病鏈夎繖涓簨浠跺嚱鏁帮紝娌℃湁灏辩洿鎺ヨ繑鍥烇紝濡傛灉鏈夛紝鐩存帴璧嬪€肩粰涓€涓猚ount++鍑芥暟锛屼繚璇佷簨浠跺鐞嗗嚱鏁板彧鐢熸垚涓€娆★紝濡備笅鍥?馃尨BlockTreeBlockTree涓昏鏄负浜嗘彁楂樻瘮杈冩柊鏃ф爲宸紓鐨勬晥鐜囥€傛瘮杈冨樊寮傜殑杩囩▼绉颁负diff绠楁硶锛屼篃绉颁负patch绠楁硶vue2鍦ㄦ瘮杈冩柊鏃ф爲鏃讹紝涓嶇煡閬撳摢浜涜妭鐐规槸闈欐€佺殑锛屽摢浜涜妭鐐规槸鍔ㄦ€佺殑锛屽彧鑳介€愬眰姣旇緝锛屾氮璐规渶澶ф瘮杈冮潤鎬佽妭鐐圭殑鏃堕棿銆備妇涓牀瀛愷煂帮細
    vue2瀵规瘮锛氱粡杩囦竴绯诲垪鐨勫姣旓紝vue2鍙戠幇鍙湁input鍙戠敓浜嗗彉鍖栵紝涔熷氨鏄粍鑹叉柟鍧楅儴鍒嗭紝钃濊壊鏂瑰潡鏄痵tatic鑺傜偣娌℃湁鏀瑰彉銆傝繖浜涙病鏈夋敼鍙樼殑姣旇緝锛岄兘鏄鏃犳剰涔夌殑姣旇緝锛屾氮璐规椂闂达紝娴垂鐢熷懡銆俈ue3瀵规瘮锛歏ue3渚濊禆寮哄ぇ鐨勭紪璇戝櫒锛屽彲浠ュ姣忎釜鑺傜偣杩涜鏍囪锛岀劧鍚庡湪鏍硅妭鐐逛腑璁板綍瀛愬瓩鑺傜偣涓湁鍝簺鏄姩鎬佽妭鐐广€傝褰曞悗锛屽湪姣旇緝杩囩▼涓笉姣旇緝鏁存5鏍戯紝鑰屾槸鐩存帴鎵炬牴鑺傜偣銆傛垜浠О涔嬩负鍧楄妭鐐广€傚姣斿姩鎬佽妭鐐规暟缁勫氨澶熶簡锛岃繖鏍蜂細璺宠繃鎵€鏈夐潤鎬佽妭鐐癸紝涓嶄細娑夊強鏍戠殑娣卞害閬嶅巻锛屾墍浠ラ€熷害浼氬緢蹇€傞潤鎬佸唴瀹硅秺澶氾紝鏁堢巼鎻愬崌瓒婂ぇ銆傚綋鐒讹紝鍙兘鏈夋湅鍙嬩細闂紝鏇存柊鏁版嵁鐨勬椂鍊欙紝鍒嗘敮鍙兘浼氬涓€浜涖€傚鏋滆繖鏍峰仛锛屾爲灏嗕笉绋冲畾銆備竴鏃︽爲涓嶇ǔ瀹氾紝灏变細鍑虹幇闂銆傛爲涓嶇ǔ瀹氱殑鍦版柟锛寁ue3浼氭妸瀹冨叏閮ㄥ彉鎴愬潡锛岀浉褰撳鏉傘€傛垜杩樻病鏈夌爺绌惰繃锛屾墍浠ュぇ姒傚氨鏄繖涓剰鎬濄€傜瓑鎴戝紕鏄庣櫧浜嗭紝绛変細鍐嶅憡璇変綘馃崊PatchFlagvue3鎰熻杩樻槸姣旇緝娴垂姣忎釜鑺傜偣鐨勬晥鐜囥€傝櫧鐒跺畠璺宠繃浜嗘墍鏈変笉闇€瑕佹瘮杈冪殑鑺傜偣锛屼絾鏄粛鐒堕渶瑕佹煡鐪嬭妭鐐广€傚厓绱犵被鍨嬨€佸睘鎬у拰閫掑綊瀛愯妭鐐规槸鍚︽湁鍙樺寲锛熸瘮杈冨崟涓妭鐐规椂杩涗竴姝ヤ紭鍖栥€傝繖杩樻槸闇€瑕佷緷璧杤ue3寮哄ぇ鐨勭紪璇戝櫒銆傜紪璇戠殑鏃跺€欎細璁板綍鍝簺鑺傜偣鏄姩鎬佸唴瀹瑰苟鏍囪涓句釜鏍楀瓙馃尠锛?divclass="active"title="ForensicMedicine">{{user.name}}缂栬瘧锛屽苟鍦ㄥ浘涓爣璁颁负1銆傝繖鎰忓懗鐫€div鑺傜偣涓殑鏂囨湰鏄姩鎬佺殑銆備妇涓牀瀛愶細{{user.name}}杩欎釜3琛ㄧずdiv鑺傜偣涓殑text鍜宑lass鏄姩鎬佺殑馃槉鍡紝涓婇潰灏辨槸鎴戠殑鍒嗕韩锛屽笇鏈涘澶у鏈夋墍甯姪锛屾杩庡ぇ瀹跺湪璇勮鍖鸿璁洪腑锝炲笇鏈涘ぇ瀹跺枩娆煈嶆敮鎸侊綖馃槝锛屾垜浼氭洿鏈夊姩鍔涴煠烇紝鏅氬畨锛?/p>