第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何擴散到出口

如何擴散到出口

白衣非少年 2021-05-10 12:22:34
我有一個javascript文件,可以在其中簡單地定義css類,以便可以在我的代碼中使用它們并可以將它們維護在一個位置,如下所示://css.jsconst pre = 'grc-';const backdropcss = {  backdrop: `${pre}backdrop`,};const buttoncss = {  btn: `${pre}btn`,  btnSm: `${pre}btn--sm`,  btnSecondary: `${pre}btn--secondary`,  btnTertiary: `${pre}btn--tertiary`,  btnLink: `${pre}btn--link`,  btnFull: `${pre}btn--full`,  btnHalf: `${pre}btn--half`,  btnThird: `${pre}btn--third`,};//etc.我以兩種方式使用它。對于我的組件庫,我想像這樣隔離組件的css名稱:export {  buttoncss,  alertcss,  checkboxcss,  formcss,  radioboxcss,  drawercss,  backdropcss,  rangecss,};因此,我只能導(dǎo)入所需的內(nèi)容。但是我還希望將所有定義組合在一起的默認導(dǎo)出。(注:所以我不希望用它們作為cssjs.buttoncss,而是因為cssjs它具有所有子對象擴散到)為了創(chuàng)建對象,我將所有子對象展開,然后將其導(dǎo)出為默認對象,如下所示:const cssjs = {  ...buttoncss,  ...alertcss,  ...checkboxcss,  ...formcss,  ...radioboxcss,  ...drawercss,  ...backdropcss,  ...rangecss,};export default cssjs;現(xiàn)在,每次創(chuàng)建新組件時,在這些對象中添加兩次都是多余的。所以我想創(chuàng)建一個all對象:const all = {  buttoncss,  alertcss,  checkboxcss,  formcss,  radioboxcss,  drawercss,  backdropcss,  rangecss,};并將它們傳播到(命名的)出口中:export { ...all}然后,我將編寫一些代碼來遍歷all對象,并將每個子對象散布到一個大對象中(cssjs從之前創(chuàng)建對象)。但是在我能夠編寫最后的代碼之前,我注意到export { ...all}不支持該語法。有什么方法可以完成我想要的工作,還是我必須像現(xiàn)在這樣兩次寫所有東西?編輯:如果在聲明時將變量設(shè)置為exports,請重新使用變量,這使我措手不及。現(xiàn)在這是我的代碼://more definitionsexport const formcss = {  formGroup: `${pre}form--group`,};export const radioboxcss = {  radio: `${pre}radio`,  radioStacked: `${pre}radio--stacked`,};export default {  ...buttoncss,  ...alertcss,  ...checkboxcss,  ...formcss,  ...radioboxcss,  ...drawercss,  ...backdropcss,  ...rangecss,};這解決了我的特定問題,但仍然讓我感到奇怪,為什么不可能將對象擴展到導(dǎo)出聲明中,以便您可以按對象內(nèi)的名稱導(dǎo)出對象中的所有內(nèi)容。因此,對于可能通過標題來到這里的其他人:我為什么要這樣做const one = 1const two = 2export { one, two, }但這不是const one = 1const two = 2 const numbers = { one, two, }export { ...numbers, }
查看完整描述

2 回答

?
婷婷同學(xué)_

TA貢獻1844條經(jīng)驗 獲得超8個贊

  1. 除非我缺少任何東西,否則您無需擴展all到新對象即可使它工作,export all

  2. 聽起來您真正想要的只是普通的命名出口。無需將所有內(nèi)容組合到一個對象中,您只需說export const buttoncss = ...并完全跳過所有這些內(nèi)容即可


查看完整回答
反對 回復(fù) 2021-05-27
?
郎朗坤

TA貢獻1921條經(jīng)驗 獲得超9個贊

導(dǎo)出不是對象,即使以簡寫形式命名的export語法看起來與簡寫對象文字語法非常相似。因此,沒有,實際上沒有辦法在其中使用擴展語法,這也意味著動態(tài)導(dǎo)出名稱。


有什么辦法可以實現(xiàn)我想要的嗎?


將命名導(dǎo)出用于所有個人樣式之后,可以將自己的模塊作為名稱空間導(dǎo)入:


import * as myself from './css.js';

然后myself將是一個包含所有導(dǎo)出名稱的名稱空間對象。您現(xiàn)在可以default-export使用此對象的東西:


const all = {};

for (const p in myself)

    if (p != "default")

        Object.assign(all, myself[p]);

export { all as default };

確保將此代碼放在模塊的末尾,以便myself[p]將其評估為已初始化的變量。


查看完整回答
反對 回復(fù) 2021-05-27
  • 2 回答
  • 0 關(guān)注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號