当前位置: 首页 > Web前端 > JavaScript

折叠面板组件的设计与实现

时间:2023-03-27 11:27:19 JavaScript

span{color:var(--color);}鍓嶈█NutUI锛屼綘搴旇涓嶉檶鐢焄楝艰劯]锛屽墠绔紑鍙戠殑鍚屽涓€瀹氭湁鎵€浜嗚В銆侼utUI鏄竴涓含涓滈鏍肩殑绉诲姩绔粍浠跺簱锛屼娇鐢╒ue璇█缂栧啓鍙湪H5鍜屽皬绋嬪簭骞冲彴涓婁娇鐢ㄧ殑搴旂敤绋嬪簭銆傜洰鍓峃utUI鎷ユ湁70+缁勪欢锛屾敮鎸佹寜闇€寮曠敤锛屾敮鎸乀ypeScript锛屾敮鎸佽嚜瀹氫箟涓婚绛夊姛鑳斤紝褰撶劧涔熸敮鎸佹渶鏂扮殑Vue3璇硶锛屽彲浠ユ湁鏁堝府鍔╁紑鍙戣€呭湪寮€鍙戜腑鎻愰珮鏁堢巼锛屾彁鍗囧紑鍙戜綋楠屻€傝█褰掓浼狅紝浠婂ぉ鎴戜滑鏉ュ涔犱竴涓嬫姌鍙犻潰鏉緾ollapse鍦∟utUI涓殑瀹炵幇涓庤璁★紝浠ュ強寮€鍙戣繃绋嬩腑瀛﹀埌鐨勬柊鐭ヨ瘑鐐广€傛姌鍙犻潰鏉胯璁″叾瀹炴姌鍙犻潰鏉跨粍浠舵棤璁烘槸鍦≒C杩樻槸M涓婇兘鏄竴涓瘮杈冨父瑙佺殑缁勪欢锛岄【鍚嶆€濅箟灏辨槸涓€涓彲浠ユ姌鍙?灞曞紑鐨勫唴瀹瑰尯鍩熴€傝繕鏈夊箍娉涚殑浣跨敤鍦烘櫙锛屾瘮濡傚鑸€佹枃瀛楄鎯呫€佺瓫閫夊垎绫荤瓑锛涘湪缁勪欢寮€鍙戦樁娈碉紝鎴戜滑閫氬父浼氳繘琛屽姣斿垎鏋愶紝鍙栭暱琛ョ煭銆傛墍浠ユ垜浠畝鍗曠殑閫氳繃鍔熻兘瀵规瘮杩涘叆缁勪欢鐨勫紑鍙戙€傛姌鍙犻潰鏉縱antantdtdesignelementuivarletvuetifynaiveuiiviewbalamnutuiContent灞曞紑鎶樺彔鉁椻湕鉁撯湏鎶樺彔鍥炬爣棰滆壊鉁撯湕鉁椻湕鉁撯湏鉁椻湕鉁椻湏鎶樺彔鍥炬爣澶у皬鉁撯湕鉁椻湕鉁椻湕鉁椻湕鉁椻湏鏍囬鍥炬爣浣嶇疆鉁撯湏鉁椻湏鉁椻湏鉁撯湕鉁椻湕鉁撴棆杞搴︹湏鉁撯湕鉁撯湕鉁撯湏鉁椻湕鉁椻湏鏃嬭浆瑙掑害鉁椻湕鉁椻湕鉁椻湏瀛楀箷鉁撯湏鉁撯湏鉁椻湏鉁椻湕鉁撴敮鎸佺鐢ㄦā寮忊湏鉁撯湏鉁撯湏鉁撯湕鉁椻湕鉁撹缃浐瀹氬唴瀹光湕鉁椻湕鉁椻湕鉁椻湕鉁椻湕鉁撶粍浠剁殑鏈川鏄敼杩涘紑鍙戞晥鐜囨槸鐨勶紝鎴戜滑閫氳繃瀵逛笟鍔″満鏅殑閰嶇疆杩涜瑙f瀯缁勫悎鏉ュ疄鐜颁笟鍔¢渶姹傘€備緥濡傦紝缁勪欢搴撴槸涓€涓伐鍏风銆傛瘡涓粍浠堕兘鏄竴涓伐鍏凤紝渚嬪鐩掑瓙涓殑鎵虫墜鍜岄挸瀛愩€傚畠涓轰笟鍔″満鏅彁渚涗簡鍚勭宸ュ叿銆傚浣曟墦閫犱竴娆鹃€傚悎宸ヤ綔鐨勫伐鍏凤紝闇€瑕佹垜浠骞虫椂鐨勪笟鍔″紑鍙戞湁涓€瀹氱殑浜嗚В銆傜悊瑙e拰鎬濊€冦€備竴璧锋潵鎺㈢储鍚灞曞紑鏀惰捣缁勪欢鐨勫熀鏈氦浜掑凡缁忔竻妤氫簡锛屾垜浠殑title鍜宑ontent鐨勫竷灞€灏辨瘮杈冪畝鍗曚簡銆傜幇鍦ㄦ垜浠渶瑕佸畬鎴愪氦浜掑紑鍙戯紝鍗冲睍寮€鍜屾姌鍙犵殑鍔熻兘銆傚疄鐜板睍寮€鎶樺彔鍔熻兘鍏跺疄寰堢畝鍗曘€傞€氳繃涓€涓彉閲忔潵鎺у埗鍐呭鐨勬樉绀哄拰闅愯棌灏辫冻澶熶簡銆傚湪涓嶈€冭檻鍏朵粬鍥犵礌鐨勬儏鍐典笅锛岃繖绉嶆柟娉曠‘瀹炴槸鏈€鏈夋晥鐨勬柟娉曘€?template>title

娴嬭瘯鍐呭娴嬭瘯鍐呭娴嬭瘯鍐呭娴嬭瘯鍐呭娴嬭瘯鍐呭
涓嶈繃杩欑鏂瑰紡瀵规垜浠悗鏈熺殑鍔熻兘鎵╁睍鍜屼氦浜掓晥鏋滃彲鑳戒笉鏄緢鍙嬪ソ銆傛墍浠ユ垜鐨勮В鍐虫柟妗堟槸鏀瑰彉鎶樺彔鍐呭鐨勯珮搴︺€傚綋鐒讹紝杩欎釜鏂规硶涔熷緢瀹规槗鐞嗚В銆傛垜浠富瑕佸鐞嗗唴瀹圭殑鍐呭銆傚浜庤繖涓牱寮忥紝鎴戜滑榛樿璁剧疆瀹冪殑楂樺害涓?锛屽嵆鍐呭鏄姌鍙犵殑銆傚洜涓烘棤娉曠‘瀹氭瘡涓€鎶樼殑鍐呭锛屾墍浠ユ垜浠渶瑕佸姩鎬佽绠楀~鍏呭唴瀹圭殑楂樺害锛岃繖涔熸槸涓€绉嶉€傞厤鏂规銆傛垜鍔ㄦ€佽绠楃殑鐩殑鏄疄鐜板悗闈㈢殑鍔ㄧ敾鏁堟灉锛屾彁楂樼敤鎴蜂綋楠屻€傛垜鏄敤height+transform瀹炵幇鐨勶紝鍚屾椂鍒╃敤css鐨勫睘鎬ill-change鏉ヤ紭鍖栧姩鐢绘晥鏋溿€倃ill-change涓簑eb寮€鍙戣€呮彁渚涗簡涓€绉嶅皢鍏冪礌鍙戠敓鍙樺寲閫氱煡娴忚鍣ㄧ殑鏂瑰紡锛屼互渚挎祻瑙堝櫒鍦ㄥ厓绱犵殑灞炴€х湡姝e彂鐢熷彉鍖栦箣鍓嶏紝鎻愬墠鍋氬ソ鐩稿簲鐨勪紭鍖栧噯澶囥€傝繖绉嶄紭鍖栧彲浠ユ彁鍓嶅噯澶囬儴鍒嗗鏉傜殑璁$畻宸ヤ綔锛岃椤甸潰鐨勫搷搴旀洿蹇洿鐏垫晱銆?/缁勪欢閮ㄥ垎鏍稿績浠g爜constwrapperRefEle:any=wrapperRef.value;constcontentRefEle:any=contentRef.value;if(!wrapperRefEle||!contentRefEle){return;}constoffsetHeight=contentRefEle.offsetHeight||'auto';if(offsetHeight){constcontentHeight=`${offsetHeight}px`;wrapperRefEle.style.willChange='height';wrapperRefEle.style.height=!proxyData.openExpanded锛?:contentHeight;}涓婇潰浠g爜鏄幏鍙栧厓绱犵殑DOM锛岃绠楀唴瀹圭殑楂樺害offsetHeight骞惰祴鍊硷紝閫氳繃楂樺害鐨勫彉鍖栧拰transform瀹炵幇鎶樺彔灞曞紑鐨勫姩鐢绘晥鏋溿€傜伒娲荤殑鏍囬鏍忕揣闅忓叾鍚庣殑鏄鏍囬鏍忓姛鑳界殑鏀硅繘锛屽鍔犱簡鍥炬爣銆佽嚜瀹氫箟浣嶇疆鍜岀浉鍏崇殑鍔ㄧ敾鍔熻兘銆傛垜浠厛鏉ョ湅鍩烘湰鐢ㄦ硶鐨勫彸渚у浘鏍囷紝瀵瑰簲鍐呭鐨勬敹璧峰拰灞曞紑銆傚綋瀹冧互浜や簰鏂瑰紡灞曞紑鏃讹紝瀹冩槸鍚戜笂绠ご锛屽綋瀹冩姌鍙犳椂锛屽畠鏄悜涓嬬澶淬€傞偅涔堟垜浠牴鎹睍寮€鐘舵€佹槸鍚︿负鍙橀噺锛岀敤涓€涓澶村浘鏍囧氨鍙互杞绘澗鎼炲畾銆傝В鍐虫柟娉曟槸鍒╃敤css3鐨剅otate灞炴€ф潵鍙嶈浆180掳銆俰f(parent.props.icon&&!proxyData.openExpanded){proxyData.iconStyle['transform']='rotate(0deg)';}else{proxyData.iconStyle['transform']='rotate('+parent.props.rotate+'deg)';}涓轰簡鍔犲己鐢ㄦ埛鑷畾涔夛紝鎵╁睍缁勪欢鑳藉姏锛屽澶栨毚闇蹭簡鍥炬爣閰嶇疆鐨凙PI锛屾瘮濡傝嚜瀹氫箟鍥炬爣锛屽浘鏍囨棆杞搴︾瓑锛岃繖浜涢厤缃寚鐨勬槸涓嶅悓鐨勫満鏅紝姣斿content涓€浜涙柊闂绘姤閬撶殑鍥剧墖琚姌鍙犲苟鏃嬭浆浜?0掳銆傚綋鐒讹紝鏍囬鏍忔枃鏈篃鍙互閰嶇疆鐩稿叧鐨勫浘鏍囷紝鍖呮嫭鍥炬爣鐨勪綅缃€侀鑹层€佸ぇ灏忕瓑銆傝鍔熻兘澧炲姞浜嗙敤鎴风殑涓€у寲閰嶇疆锛屽彲鐢ㄤ簬鏄剧ず涓€浜涢噸瑕佹秷鎭€佹柊娑堟伅鎻愰啋銆佹湭鏌ョ湅淇℃伅绛夊満鏅€備竴浜涚粍浠跺簱鐨勫紑鍙戣€呭彲鑳芥病鏈夎繖涓厤缃€傞鍏堟垜涓汉瑙夊緱璺熺粍浠舵病浠€涔堝叧绯汇€傜粍浠剁殑璁捐闇€瑕佸拰涓氬姟鑱旂郴璧锋潵锛屾娊璞″嚭涓€浜涘姛鑳斤紝杩欐牱鎵嶈兘鏇村ソ鐨勫畬鍠勭粍浠剁殑鍔熻兘锛屽寘鎷悗鏈熺粍浠剁殑鎵╁睍锛岃繖浜涢兘鏄湪寮€鍙戜腑鎴愰暱鐨勭殑涓氬姟銆傞厤缃」鍗囩骇鍦ㄥ悗鏈熺殑浣跨敤杩囩▼涓紝鎴戜滑閽堝鏌愪簺鍦烘櫙瀵圭粍浠跺姛鑳借繘琛屼簡浼樺寲鍗囩骇銆傞鍏堬紝澧炲姞浜嗗瓧骞曠殑閰嶇疆锛屽彲浠ュ緢鏂逛究鐨勯€氳繃瀛楀箷鏉ヨ缃紙PS锛氬彲浠ョ湅涓婂浘鐨勪緥瀛愷煈嗭級銆傚晢鍩庣Щ鍔ㄧ涓殑鎼滅储鍒嗙被鍔熻兘锛屽涓嬪浘鍦烘櫙銆傚畠浼氭湁榛樿鐨勫唴瀹规樉绀哄湪澶栭潰锛屽叾浣欑殑鍐呭浼氭姌鍙犳垨鑰呮姌鍙犲悗灞曞紑锛屾墍浠ュ鍔犱簡slot:extraRenderAPI锛岃杩欓儴鍒嗗唴瀹逛互slot鐨勫舰寮忓瓨鍦紝鍗虫柟渚垮紑鍙戣€呭畾涔変笉鍚岀殑鏄剧ず褰㈠紡銆傛牱寮忚皟鏁寸瓑涓婅堪鍔熻兘鐨勫疄鐜颁篃姣旇緝绠€鍗曪紝鍙渶瑕佸湪浠g爜涓坊鍔犱竴涓猻lot鏍囩鍗冲彲鎺ユ敹浼犲叆鐨勫唴瀹广€?viewv-if="$slots.extraRender"class="collapse-extraWrapper">
鏃㈢劧璇村埌slot锛岄偅鎴戝氨鍟板棪澶氫簡[闊╄惂]銆傚叧浜庝笂闈㈡彁鍒扮殑鏍囬鍜屽唴瀹圭殑灞曠ず锛岃璁¤€冭檻鍒板彲浠ヨ寮€鍙戣€呯渷鏃剁渷鍔涳紝骞朵笖鏈夋洿澶氱殑鍙搷浣滄€с€傚熀鏈笂閮芥槸浠ユЫ鐨勫舰寮忔帴鏀跺叆鍙傦紙浠呴拡瀵规湰缁勪欢锛屽唴瀹瑰睍绀虹浉鍏筹級锛岃繖鏍峰嵆浣垮悗绔垨鍓嶇澶勭悊鏁版嵁甯︽湁HTML鏍囩锛屼篃鍙互杞绘澗璇嗗埆锛屾棤闇€鍐椾綑澶勭悊.鐢变簬闈㈡澘鍙互灞曞紑鍜屾姌鍙狅紝鍥犳瀛樺湪鐩稿弽琚姝㈢殑鎿嶄綔銆傛垜鎻愪緵浜嗕竴涓畝鍗曠殑灞炴€ц缃甦isabled鏉ュ垽鏂槸鍚﹀彲鎿嶄綔锛屽疄鐜版柟娉曟槸閫氳繃璁剧疆style鏍峰紡鏉ュ疄鐜扮殑銆?nu鈥嬧€媡-collapse-item-disabled{棰滆壊锛?c8c9cc;娓告爣锛氫笉鍏佽锛沺ointer-events:none;}寮€鍙戣璁css涓娇鐢ㄥ彉閲忕殑鍔熻兘澶у骞朵笉闄岀敓銆傝鐧戒簡灏辨槸鍙互閫氳繃JS鎺у埗CSS鐨勬牱寮忥紝鐩墠Vue3鏀寔鎴戜滑鍦–SS涓娇鐢ㄥ彉閲忥紝鐩存帴鍦ㄤ唬鐮佷笂銆?template>NutUIspan{color:var(--color);}鏄笉鏄緢绠€鍗曪紵鍏跺疄绫讳技鐨勫啓娉曚箣鍓嶅凡缁忔湁绫讳技鐨勬彃浠舵敮鎸佷簡銆傚鏋滀綘瀵筫motionjssstyled-componentsaphroditeradiumglamor鎰熷叴瓒o紝鍙互璇曡瘯杩欎簺鎻掍欢銆傚皬缂栫敤杩噑tyled-components锛屼笂鎵嬭繕鏄緢瀹规槗鐨勩€傚湪寮€濮嬩箣鍓嶏紝鎴戝缓璁偍浜嗚ВCSS-in-JS鐨勬蹇点€傜粍浠跺紑鍙戦€傞厤鎯虫垚涓篘utUI鐨勮础鐚€咃紵濡傛灉浣犱篃鎯充负NutUI璐$尞鑷繁鐨勭粍浠讹紝杩欓噷鏈変竴浜涢€傞厤灏忕▼搴忕殑瑕佺偣~H5寮€鍙戞椂鑾峰彇DOM鍏冪礌杩樻槸姣旇緝瀹规槗鐨勶紝閫氳繃document鎴栬€卹ef鍗冲彲銆備絾鏄垜浠湪閫傞厤灏忕▼搴忕殑鏃跺€欐槸鑾峰彇涓嶅埌杩欎釜鏂规硶鐨勶紝闇€瑕佹寜鐓aro鎻愪緵鐨勬柟娉曡幏鍙栥€備粠鈥淍tarojs/taro鈥濆鍏aro锛寋eventCenter锛実etCurrentInstanceasgetCurrentInstanceTaro}锛沞ventCenter.once((getCurrentInstanceTaro()asany).router.onReady,()=>{constquery=Taro.createSelectorQuery();query.selectAll('.collapse-content').boundingClientRect();query.exec((res)=>{console.log(res);});});閫氳繃浠ヤ笂鏂规硶鍙互鑾峰彇鍒拌妭鐐逛俊鎭紝鍖呮嫭width銆乭eight銆亁銆亂绛夛紝鍙互灏濊瘯鏌ョ湅鑾峰彇鍒扮殑淇℃伅銆傚彟澶栭渶瑕佹敞鎰忕殑鏄紝鍦ㄤ负鍏冪礌璁剧疆鏍峰紡鏃讹紝鏈€濂戒娇鐢ㄧ粍浠朵腑鐨勬牱寮忓彉閲忔潵鎺ユ敹锛岃€屼笉鏄洿鎺ヨ祴鍊笺€?/鍍忚繖鏍锋敼鍙樻牱寮廲onststyle=reactive({color:'red',height:'100px',});constchange=()=>{style.color='blue';}vue3缁勪欢閫氫俊鍦ㄨ缁勪欢鍦ㄥ紑鍙戣繃绋嬩腑锛岀敱浜巒ut-collapsenut-collapse-item鐨勭埗瀛愮粍浠堕渶瑕佽繘琛岄€氫俊锛屾垜浣跨敤浜唒rovide/inject鏂瑰紡锛屾墍浠ュ杩欑閫氫俊鏂瑰紡杩涜浜嗙畝鍗曠殑瀛︿範銆傚叧浜庣粍浠堕€氫俊鐨勬柟寮忥紝姣斿props銆乪mit銆乤ttrs绛夛紝鎯冲繀澶у宸茬粡蹇冪煡鑲氭槑锛屽氨涓嶇瀻璇翠簡銆備笅闈㈡垜灏辩粰澶у绠€鍗曞垎浜竴涓媝rovide/inject鐨勫弬鏁颁紶閫掑舰寮忋€傝繖涓狝PI鍦╲ue2涓凡缁忓瓨鍦ㄣ€?/a.vue缁勪欢//鍒涘缓涓€涓猵rovideimport{defineComponent,provide}from'vue';exportdefaultdefineComponent({setup(){constmsg:string='HelloNutUI';//provideoutprovide('msg',msg);}})//b.vue缁勪欢//鎺ユ敹鏁版嵁import{defineComponent,inject}from'vue'exportdefaultdefineComponent({setup(){constmsg:string=inject('msg')||'';}})閫氳繃涓婇潰涓や釜渚嬪瓙锛屾搷浣滃緢绠€鍗曪紝浣嗘槸瑕佹敞鎰忚鎻愪緵娌℃湁鍝嶅簲銆傚鏋滀綘鎯宠瀹冨搷搴斿紡锛屼綘闇€瑕佷紶鍏ュ苟涓斿簲璇ユ槸鍝嶅簲寮忔暟鎹€俻rovide鎻愪緵鐨勬暟鎹笉鑰冭檻缁勪欢灞傜骇锛屽嵆鍙戣捣provide鐨勭粍浠跺彲浠ヤ綔涓哄叾鎵€鏈変笅灞炵粍浠剁殑渚濊禆provider銆俻rovide鍜宨nject鐨勫疄鐜板師鐞嗕富瑕佹槸鍒╃敤prototype鍜宲rototypechain瀹炵幇鐨勩€俈ue3涓殑provide鍑芥暟鏄湪褰撳墠缁勪欢瀹炰緥鐨刾rovides瀵硅薄灞炴€т腑娣诲姞涓€涓敭鍊煎key/value銆傝繕鏈変竴涓湴鏂瑰氨鏄鏋滃綋鍓嶇粍浠跺拰鐖剁粍浠剁殑provides鐩稿悓锛岄偅涔堝綋鍓嶇粍浠跺疄渚嬩腑鐨刾rovides瀵硅薄鍜宲arent浼氬缓绔嬩竴涓摼鎺ワ紝鍗硃rototype鍘熷瀷銆俧unctionprovide(key,value){if(!currentInstance){if((process.env.NODE_ENV!=='production')){warn(`provide()鍙兘鍦╯etup()鍐呴儴浣跨敤銆俙);}}else{//鑾峰彇褰撳墠缁勪欢瀹炰緥鐨刾rovides灞炴€etprovides=currentInstance.provides;//鑾峰彇褰撳墠鐖剁粍浠剁殑provides灞炴€onstparentProvides=currentInstance.parent&¤tInstance.parent.provides;if(parentProvides===provides){//Object.create()es6涓垱寤哄璞$殑涓€绉嶆柟寮忥紝鍙互鐞嗚В涓虹户鎵夸竴涓璞★紝娣诲姞鐨勫睘鎬у湪prototype涓嬨€俻rovides=currentInstance.provides=Object.create(parentProvides);}鎻愪緵[閿甝=鍊硷紱inject鐨勫疄鐜版垜灏变笉缁嗚浜嗐€傛湁鍏磋叮鐨勫彲浠ユ牴鎹簮鐮佷簡瑙f洿澶氥€備粠涓嬮潰鐨勪唬鐮佷腑锛屾垜浠彲浠ュぇ鑷翠簡瑙e埌锛宨nject鏄厛鑾峰彇褰撳墠缁勪欢鐨勫疄渚嬪璞★紝鍐嶅垽鏂槸鍚︿负鏍圭粍浠躲€傚鏋滄槸鏍圭粍浠讹紝鍒欒繑鍥瀉ppContext鐨刾rovides锛屽惁鍒欒繑鍥炵埗缁勪欢鐨刾rovides銆傚鏋滃綋鍓峩ey鍦╬rovides涓湁鍊硷紝鍒欒繑鍥炶鍊硷紝鍚﹀垯鍒ゆ柇鏄惁鏈夐粯璁ゅ唴瀹癸紝濡傛灉榛樿鍐呭涓哄嚱鏁帮紝鍒欐墽琛屽苟缁戝畾缁勪欢瀹炰緥鐨勪唬鐞嗗璞¢€氳繃璋冪敤鏂规硶鍒板嚱鏁扮殑this銆傚惁鍒欑洿鎺ヨ繑鍥為粯璁ゅ唴瀹广€俧unctioninject(key,defaultValue,treatDefaultAsFactory=false){//濡傛灉琚姛鑳界粍浠惰皟鐢紝鍙朿urrentRenderingInstanceconstinstance=currentInstance||褰撳墠娓叉煋瀹炰緥锛沬f(instance){//濡傛灉瀹炰緥鍦ㄦ牴鐩綍涓嬶紝鍒欒繑鍥瀉ppContext鐨刾rovides锛屽惁鍒欒繑鍥炵埗缁勪欢鐨刾rovidesconstprovides=instance.parent==null?instance.vnode.appContext&&instance.vnode.appContext.provides:instance.parent.provides;if(provides&&keyinprovides){returnprovides[key];}//濡傛灉鍙傛暟澶т簬1锛岀浜屼釜涓洪粯璁ゅ€硷紝绗笁涓弬鏁颁负true锛岀浜屼釜鍊间负鍑芥暟锛屽垯鎵ц鍑芥暟銆俥lseif(arguments.length>1){returntreatDefaultAsFactory&&isFunction(defaultValue)锛焏efaultValue.call(instance.proxy):defaultValue;鍙互澶ц嚧鐞嗚В涓鸿皟鐢╬rovideAPI鏃讹紝灏唒arent鐨刾rovides璁剧疆涓哄綋鍓峱rovides瀵硅薄鍘熷瀷瀵硅薄涓婄殑灞炴€э紝inject鑾峰彇provides瀵硅薄涓殑灞炴€у€兼椂锛屼細鍏堣幏鍙杙rovides瀵硅薄鏈韩鐨勫睘鎬с€傚鏋滃畠鑷繁鎵句笉鍒帮紝瀹冨氨浼氭部鐫€鍘熷瀷閾惧鎵句笅涓€涓璞°€傛€荤粨鏈枃涓昏浠嬬粛浜哊utUI涓姌鍙犻潰鏉跨粍浠剁殑璁捐鎬濊矾鍜屽疄鐜板師鐞嗭紝骞跺垎浜簡寮€鍙戜腑閬囧埌鐨勪竴浜涢棶棰橈紝甯屾湜瀵瑰ぇ瀹剁殑寮€鍙戞湁鎵€甯姪銆傚鏋滃湪寮€鍙戣繃绋嬩腑閬囧埌闂锛屽彲浠ラ殢鏃舵彁浜ssue锛孨utUI鍥㈤槦鐨勫悓瀛︿細璁ょ湡瀵瑰緟骞惰В鍐抽棶棰樸€傚鏋滀綘鏈夊ソ鐨勭粍浠讹紝鏃犺鏄笟鍔$殑杩樻槸閫氱敤鐨勶紝浣犻兘鍙互鍚慛utUI缁勪欢搴撴彁浜R銆傞潪甯告杩庡ぇ瀹跺弬涓庡叡寤恒€傛渶鍚庯紝闈炲父鎰熻阿涓€鐩翠互鏉ユ敮鎸丯utUI鐨勫洟闃熷拰鍚屽浠€傛偍鐨勯渶姹傚拰寤鸿璁╂垜浠殑缁勪欢搴撹秺鏉ヨ秺瀹屽杽銆傛垜浠皢缁х画鍔姏锛屽姏浜夋洿涓婁竴灞傛ゼ锛佸揩鏉ユ敮鎸佹垜浠竴涓猄tar鉂わ笍~鏂囩珷鍙傝€冮摼鎺ワ細Vue3鐨凱rovide/Inject瀹炵幇鍘熺悊锛歨ttps://juejin.cn/post/7064904368730374180鏈枃闃呰vuex4婧愮爜銆傚師鏉rovide/inject鏄師鍨嬮摼鐨勫鐢紵:https://juejin.cn/post/6963802316713492516

最新推荐
猜你喜欢