Skip to content

Commit 8edd50b

Browse files
gnwxsumn2u
authored andcommitted
Create modules.md
1 parent f86ac23 commit 8edd50b

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

tr/modules.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Modüller
2+
3+
Gerçek dünyada, bir program yeni işlevlerin ihtiyaçlarını karşılamak için doğal olarak büyür. Büyüyen kod tabanının yapılandırılması ve koruması ek çalışma gerektirir. Gelecekte ödeyecek olsa da, bunu ihmal etmek daha cazip gelebilir. Gerçekte, uygulamanın karmaşıklığını artırır, çünkü sistem hakkında bütüncül bir anlayış oluşturmak zorunda kalırsınız ve herhangi bir parçayı izole bir şekilde incelemekte zorluk yaşarsınız. İkinci olarak, işlevselliğini kullanabilmek için düğümleri çözmek için daha fazla zaman harcamanız gerekmektedir.
4+
5+
Bu sorunları önlemek için _modüller_ mevcuttur. Bir `modül`, hangi kod parçalarına bağlı olduğunu ve diğer modüller için hangi işlevselliği sağladığını belirtir. Başka bir module bağlı olan modüller _dependencies_(bağımlılıklar) olarak adlandırılır. Çeşitli modül kütüphaneleri, kodu modüllerde düzenlemek ve talep üzerine yüklenmek için mevcuttur.
6+
7+
* AMD - başlangıçta [require.js](https://requarejs.org/) tarafından kullanılan en eski modül sistemlerinden biridir.
8+
* CommonJS - Node.js sunucusu için oluşturulan modül sistemi.
9+
* UMD - AMD ve CommonJS ile uyumlu modül sistemi.
10+
11+
Modüller birbirlerini yükleyebilir ve işlevselliği değiş tokuş etmek ve birbirlerinin işlevlerini çağırmak için import ve export özel direktiflerini kullanır.
12+
13+
* `export` - mevcut modülün dışarıdan erişilebilir olmasını istediğiniz işlevleri ve değişkenleri etiketler
14+
* `import` - dışarıdan modülden işlevselliği içe aktarır
15+
16+
Modüllerde `import` ve `export` mekanizmasını görelim. `sayHi.js` dosyasından `sayHi` fonksiyonun dışa aktarıldığını görüyoruz.
17+
18+
19+
```javascript
20+
// 📁 sayHi.js
21+
export const sayHi = (user) => {
22+
alert(`Hello, ${user}!`);
23+
}
24+
```
25+
26+
`main.js` dosyasında `sayHi` işlevi `import` direktifi yardımıyla içe aktarılır.
27+
28+
```javascript
29+
// 📁 main.js
30+
import {sayHi} from './sayHi.js';
31+
32+
alert(sayHi); // function...
33+
sayHi('Kelvin'); // Hello, Kelvin!
34+
```
35+
36+
Burada import direktifi dosya yolunu içe aktararak modülü yükler ve `sayHi` değişkenine atar.
37+
Modüller iki şekilde dışa aktarılabilir: **Named**(Adlandırılmış) ve **Default**(Varsayılan). Ayrıca, _Named_ dışa aktarmalar satır içi veya ayrı ayrı atanabilir.
38+
39+
```javascript
40+
// 📁 person.js
41+
42+
// inlined named exports
43+
export const name = "Kelvin";
44+
export const age = 30;
45+
46+
// at once
47+
const name = "Kelvin";
48+
const age = 30;
49+
export {name, age};
50+
```
51+
52+
{% hint style="warning" %}
53+
Bir dosyada yalnızca bir tane `default` dışa aktarım olabilir!
54+
{% endhint %}
55+
56+
<pre class="language-javascript"><code class="lang-javascript">// 📁 message.js
57+
const message = (name, age) => {
58+
<strong> return `${name} is ${age} years old.`;
59+
</strong>};
60+
export default message;
61+
</code></pre>
62+
63+
Dışa aktarmaya bağlı olarak, iki şekilde içe aktarabiliriz. _Named_(Adlandırılmış) dışa aktarmalar süslü parantezler kullanılarak oluşturulurken, varsayılan dışa aktarmalar kullanılmaz.
64+
```javascript
65+
import { name, age } from "./person.js"; // named export import
66+
import message from "./message.js"; // default export import
67+
```
68+
69+
Modüller atandığında, döngüsel bağımlılıktan kaçınmalıyız. Döngüsel bağımlılık, bir modülün B'ye, B'nin de doğrudan veya dolaylı olarak A'ya bağımlı olduğu durumdur.

0 commit comments

Comments
 (0)