Bagaimana untuk mendapatkan nilai pulangan "Eksport Lalai" semasa mengimport?
P粉595605759
P粉595605759 2023-08-27 23:36:46
0
1
584
<p>Ringkasnya, saya mempunyai <kod>js</code> fail yang lalai eksportnya mengembalikan objek. </p> <pre class="brush:js;toolbar:false;">// x.js eksport lalai ()=>({ teks: 'teks' }) </pra> <p>Saya mahu mengimportnya ke dalam fail <kod>js</code> dan menggabungkannya dengan datanya (semacam memanjangkannya). Sekarang saya melakukan ini: </p> <pre class="brush:js;toolbar:false;">// y.js import x daripada './x.js'; const obj = x() eksport lalai ()=>({ ...obj, teks2: "teks2" }) </pra> <p>Ia berfungsi, tetapi ia tidak bersih. Adakah terdapat cara yang lebih mudah untuk melakukan ini? </p>
P粉595605759
P粉595605759

membalas semua(1)
P粉715304239

Saya fikir, "Saya mahu menggunakan pendekatan yang bersih," pendekatan yang mudah difahami. Oleh itu, perkara berikut mungkin berkesan -

1. Eksport lalai-
Ini berguna untuk mengeksport hanya satu objek, fungsi atau pembolehubah. Semasa proses import kita boleh mengimport menggunakan sebarang nama.

// x.js
export default function xFunc() {
    return { text: "text" };
}

//y.js
import xFunc from "./x.js";
export default function yFunc() {
    return {
        ...xFunc(),
        text2: "text2",
    };
}

// import y in any file
import yFunc from "./y";
console.log(yFunc());

Eksport lalai juga boleh digunakan seperti ini-
Ini berguna kerana kita boleh menggunakan mana-mana nama untuk berseronok kerana ia adalah eksport lalai dengan nama (supaya kita boleh mengingati nama itu) dan import dengan sebarang nama.

// x.js
function xFunc() {
  return { text: "text" };
}
export { xFunc as default };

// y.js
import anyName from "./x.js";
function yFunc() {
  return {
    ...anyName(),
    text2: "text2",
  };
}
export { yFunc as default };

// import y in any file
import anyName from "./y";
console.log(anyName());

2. Eksport bernama (disyorkan)-
Ini berguna untuk mengeksport berbilang nilai. Semasa proses import, nama yang sama mesti digunakan untuk mengelakkan kekeliruan antara nama eksport dan import.

// x.js
export const xFunc = () => { text: "text" };

//y.js
import { xFunc } from "./x.js";
export const yFunc = () => {
  return {
    ...xFunc(),
    text2: "text2",
  };
};

// import y in any file
import { yFunc } from "./y";
console.log(yFunc());

Edit--

Eksport bernama juga boleh digunakan seperti ini (tanpa menggunakan fungsi const dan anak panah)

// x.js
function xFunc() {
  return { text: "text" };
}
export { xFunc };

//y.js
import { xFunc } from "./x.js";
function yFunc() {
  return {
    ...xFunc(),
    text2: "text2",
  };
}
export { yFunc };

// import y in any file
import { yFunc } from "./y";
console.log(yFunc());
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan