[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:frontend\u002Fvue-directives-templates":4,"config":234},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":133,"samples":150},"frontend","Frontend","","vue-directives-templates","Vue Directives Templates","tr",75,2925,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108,111,114,117,120,121,124,127,130],{"key":19,"name":20,"count":11},"accessibility","Accessibility",{"key":22,"name":23,"count":11},"angular-change-detection","Angular Change Detection",{"key":25,"name":26,"count":11},"angular-components-lifecycle","Angular Components Lifecycle",{"key":28,"name":29,"count":11},"angular-dependency-injection","Angular Dependency Injection",{"key":31,"name":32,"count":11},"angular-directives-pipes","Angular Directives Pipes",{"key":34,"name":35,"count":11},"angular-router-forms","Angular Router Forms",{"key":37,"name":38,"count":11},"angular-testing-performance","Angular Testing Performance",{"key":40,"name":41,"count":11},"css-layout","Css Layout",{"key":43,"name":44,"count":11},"dom-browser-apis","Dom Browser Apis",{"key":46,"name":47,"count":11},"javascript-async-concurrency","Javascript Async Concurrency",{"key":49,"name":50,"count":11},"javascript-language","Javascript Language",{"key":52,"name":53,"count":11},"javascript-memory-performance","Javascript Memory Performance",{"key":55,"name":56,"count":11},"javascript-modules-bundling","Javascript Modules Bundling",{"key":58,"name":59,"count":11},"javascript-prototypes-oop","Javascript Prototypes Oop",{"key":61,"name":62,"count":11},"javascript-runtime-apis","Javascript Runtime Apis",{"key":64,"name":65,"count":11},"javascript-testing-tooling","Javascript Testing Tooling",{"key":67,"name":68,"count":11},"performance","Performance",{"key":70,"name":71,"count":11},"react-components-jsx","React Components Jsx",{"key":73,"name":74,"count":11},"react-context-state","React Context State",{"key":76,"name":77,"count":11},"react-effects-lifecycle","React Effects Lifecycle",{"key":79,"name":80,"count":11},"react-forms-suspense","React Forms Suspense",{"key":82,"name":83,"count":11},"react-hooks-state","React Hooks State",{"key":85,"name":86,"count":11},"react-rendering-performance","React Rendering Performance",{"key":88,"name":89,"count":11},"rendering-reactivity","Rendering Reactivity",{"key":91,"name":92,"count":11},"state-management","State Management",{"key":94,"name":95,"count":11},"testing","Testing",{"key":97,"name":98,"count":11},"typescript-advanced-types","Typescript Advanced Types",{"key":100,"name":101,"count":11},"typescript-generics","Typescript Generics",{"key":103,"name":104,"count":11},"typescript-modules-declarations","Typescript Modules Declarations",{"key":106,"name":107,"count":11},"typescript-narrowing-control-flow","Typescript Narrowing Control Flow",{"key":109,"name":110,"count":11},"typescript-tooling-config","Typescript Tooling Config",{"key":112,"name":113,"count":11},"typescript-type-fundamentals","Typescript Type Fundamentals",{"key":115,"name":116,"count":11},"vue-components-props","Vue Components Props",{"key":118,"name":119,"count":11},"vue-composition-api","Vue Composition Api",{"key":8,"name":9,"count":11},{"key":122,"name":123,"count":11},"vue-performance-testing","Vue Performance Testing",{"key":125,"name":126,"count":11},"vue-reactivity-system","Vue Reactivity System",{"key":128,"name":129,"count":11},"vue-router-state-management","Vue Router State Management",{"key":131,"name":132,"count":11},"web-security","Web Security",[134,138,141,144,147],{"key":135,"name":136,"count":137},"angular","Angular",450,{"key":139,"name":140,"count":137},"javascript","JavaScript",{"key":142,"name":143,"count":137},"react","React",{"key":145,"name":146,"count":137},"typescript","TypeScript",{"key":148,"name":149,"count":137},"vue","Vue",[151,169,182,195,208,221],{"id":152,"topic":9,"difficulty":153,"body":154,"options":155,"correct_key":160,"explanation":168},"019f7766-2f9f-74ad-8f6d-35ddf70540e5",1,"Vue 3'te `v-if` ile `v-show` arasındaki temel fark nedir?",[156,159,162,165],{"key":157,"text":158},"a","`v-if` yalnızca component'lerde çalışır, `v-show` yalnızca düz HTML elemanlarında",{"key":160,"text":161},"b","`v-if` elemanı DOM'a ekler\u002FDOM'dan kaldırır",{"key":163,"text":164},"c","`v-show`'un `else` dalı olabilir, `v-if`'in olamaz",{"key":166,"text":167},"d","Aralarında fark yoktur — birbirinin yerine geçen takma adlardır","`v-if` elemanı ve component örneğini koşullu olarak render eder (ya da tamamen yok eder) — false olduğunda DOM'da hiçbir şey bulunmaz. `v-show` elemanı her zaman render eder ve sadece inline `display: none` CSS özelliğini açıp kapatır, bu yüzden eleman DOM'da kalır ve component state'ini korur.",{"id":170,"topic":9,"difficulty":153,"body":171,"options":172,"correct_key":166,"explanation":181},"019f7766-2f9f-7cfb-9662-77b2c7a2d8fb","```vue\n\u003Ctemplate>\n  \u003Cli v-for=\"item in items\" :key=\"item.id\">\n    {{ item.name }}\n  \u003C\u002Fli>\n\u003C\u002Ftemplate>\n```\nBu template ne render eder?",[173,175,177,179],{"key":157,"text":174},"Tüm `items` dizisini JSON olarak içeren tek bir `\u003Cli>`",{"key":160,"text":176},"Hiçbir şey, çünkü `v-for` bir index değişkeni gerektirir",{"key":163,"text":178},"Yalnızca benzersiz `item.name` değeri başına bir `\u003Cli>`",{"key":166,"text":180},"`items` içindeki her eleman için bir `\u003Cli>`","`v-for=\"item in items\"`, `items` dizisi üzerinde döner, her eleman için bir `\u003Cli>` oluşturur ve o iterasyonun kapsamında `item`'ı ilgili elemana bağlar, bu yüzden `{{ item.name }}` her item'ın kendi `name`'ini gösterir.",{"id":183,"topic":9,"difficulty":153,"body":184,"options":185,"correct_key":157,"explanation":194},"019f7766-2fa1-74b9-a677-16294d823868","Vue template'inde `:href=\"url\"` neyin kısaltmasıdır?",[186,188,190,192],{"key":157,"text":187},"`v-bind:href=\"url\"`",{"key":160,"text":189},"`v-on:href=\"url\"`",{"key":163,"text":191},"`v-model:href=\"url\"`",{"key":166,"text":193},"`v-slot:href=\"url\"`","Başındaki iki nokta `:` işareti, bir HTML attribute'unu reaktif bir ifadeye bağlayan `v-bind:` için kısaltmadır. `:href=\"url\"` ve `v-bind:href=\"url\"` tamamen eşdeğerdir.",{"id":196,"topic":9,"difficulty":153,"body":197,"options":198,"correct_key":163,"explanation":207},"019f7766-2fa2-769a-a257-856b85974e90","Vue template'inde `@click=\"handleClick\"` neyin kısaltmasıdır?",[199,201,203,205],{"key":157,"text":200},"`v-bind:click=\"handleClick\"`",{"key":160,"text":202},"`v-if:click=\"handleClick\"`",{"key":163,"text":204},"`v-on:click=\"handleClick\"`",{"key":166,"text":206},"`v-for:click=\"handleClick\"`","`@` öneki, bir event listener ekleyen `v-on:` için kısaltmadır. `@click=\"handleClick\"` ve `v-on:click=\"handleClick\"` tamamen eşdeğerdir.",{"id":209,"topic":9,"difficulty":153,"body":210,"options":211,"correct_key":160,"explanation":220},"019f7766-2fa3-77ca-9bff-c9ef6137f94f","```vue\n\u003Ctemplate>\n  \u003Cp v-if=\"status === 'ok'\">All good\u003C\u002Fp>\n  \u003Chr \u002F>\n  \u003Cp v-else>Something's wrong\u003C\u002Fp>\n\u003C\u002Ftemplate>\n```\nBu template render edilince ne olur?",[212,214,216,218],{"key":157,"text":213},"`v-else`, aralarında `\u003Chr \u002F>` olsa bile `v-if` ile doğru şekilde eşleşir",{"key":160,"text":215},"Bu geçersizdir — `v-else`, `v-if` elemanından hemen sonra gelen elemanda olmalıdır",{"key":163,"text":217},"`status`'tan bağımsız olarak iki paragraf da aynı anda render edilir",{"key":166,"text":219},"Vue `v-else`'i sessizce yok sayar ve sadece ilk paragrafı gösterir","`v-else` (ve `v-else-if`), `v-if` taşıyan elemandan HEMEN SONRA gelen kardeş elemanda olmalıdır. Aralarına başka bir eleman (`\u003Chr \u002F>` gibi) girmesi bu bitişikliği bozar, bu yüzden Vue `v-else`'i `v-if` ile ilişkilendiremez ve bu geçersiz bir kullanımdır.",{"id":222,"topic":9,"difficulty":153,"body":223,"options":224,"correct_key":157,"explanation":233},"019f7766-2fa4-788d-bea0-1dcf02c5cff2","Vue neden her `v-for` item'ına benzersiz bir `:key` vermeyi önerir?",[225,227,229,231],{"key":157,"text":226},"Vue'ya her item için sabit bir kimlik verir",{"key":160,"text":228},"Tamamen kozmetiktir ve sadece tarayıcı DevTools görünümünü etkiler",{"key":163,"text":230},"`v-for`'un derlenmesi için zorunludur — olmazsa template build hatası fırlatır",{"key":166,"text":232},"Listeyi otomatik olarak artan key sırasına göre sıralar","`key`, Vue'nun virtual DOM diffing algoritmasına her item için sabit bir kimlik verir, böylece liste değiştiğinde (yeniden sıralama, ekleme, silme) Vue eski node'ları yenileriyle sadece index sırasına göre patch'lemek yerine doğru şekilde eşleştirebilir — bu, component state'ini korur ve görsel aksaklıkları önler.",{"fields":235,"seniorities":410,"interview_shapes":411,"locales":416,"oauth":418,"question_count":421,"coach_enabled":422,"jd_match_enabled":422},[236,261,270,287,311,324,343,362,384,391,397,404],{"key":237,"name_tr":238,"name_en":238,"sort":153,"specializations":239},"backend","Backend",[240,243,246,249,252,255,258],{"key":241,"name":242,"field":237},"general","Genel",{"key":244,"name":245,"field":237},"go","Go",{"key":247,"name":248,"field":237},"python","Python",{"key":250,"name":251,"field":237},"java","Java",{"key":253,"name":254,"field":237},"csharp","C#\u002F.NET",{"key":256,"name":257,"field":237},"nodejs","Node.js",{"key":259,"name":260,"field":237},"php","PHP",{"key":5,"name_tr":6,"name_en":6,"sort":262,"specializations":263},2,[264,265,266,267,268,269],{"key":241,"name":242,"field":5},{"key":139,"name":140,"field":5},{"key":145,"name":146,"field":5},{"key":142,"name":143,"field":5},{"key":148,"name":149,"field":5},{"key":135,"name":136,"field":5},{"key":271,"name_tr":272,"name_en":272,"sort":273,"specializations":274},"fullstack","Fullstack",3,[275,276,277,278,279,280,281,282,283,284,285,286],{"key":241,"name":242,"field":271},{"key":244,"name":245,"field":237},{"key":247,"name":248,"field":237},{"key":250,"name":251,"field":237},{"key":253,"name":254,"field":237},{"key":256,"name":257,"field":237},{"key":259,"name":260,"field":237},{"key":139,"name":140,"field":5},{"key":145,"name":146,"field":5},{"key":142,"name":143,"field":5},{"key":148,"name":149,"field":5},{"key":135,"name":136,"field":5},{"key":288,"name_tr":289,"name_en":289,"sort":290,"specializations":291},"devops-cloud","DevOps \u002F Cloud",4,[292,293,296,299,302,305,308],{"key":241,"name":242,"field":288},{"key":294,"name":295,"field":288},"aws","AWS",{"key":297,"name":298,"field":288},"gcp","GCP",{"key":300,"name":301,"field":288},"azure","Azure",{"key":303,"name":304,"field":288},"kubernetes","Kubernetes",{"key":306,"name":307,"field":288},"terraform","Terraform",{"key":309,"name":310,"field":288},"linux","Linux",{"key":312,"name_tr":313,"name_en":313,"sort":314,"specializations":315},"ai-engineer","AI Engineer",5,[316,317,318,321],{"key":241,"name":242,"field":312},{"key":247,"name":248,"field":312},{"key":319,"name":320,"field":312},"llm-rag","LLM\u002FRAG",{"key":322,"name":323,"field":312},"mlops","MLOps",{"key":325,"name_tr":326,"name_en":327,"sort":328,"specializations":329},"database","Veritabanı","Database",6,[330,331,334,337,340],{"key":241,"name":242,"field":325},{"key":332,"name":333,"field":325},"postgresql","PostgreSQL",{"key":335,"name":336,"field":325},"mysql","MySQL",{"key":338,"name":339,"field":325},"mongodb","MongoDB",{"key":341,"name":342,"field":325},"redis","Redis",{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"mobile","Mobil","Mobile",7,[349,350,353,356,359],{"key":241,"name":242,"field":344},{"key":351,"name":352,"field":344},"ios-swift","iOS (Swift)",{"key":354,"name":355,"field":344},"android-kotlin","Android (Kotlin)",{"key":357,"name":358,"field":344},"flutter","Flutter",{"key":360,"name":361,"field":344},"react-native","React Native",{"key":363,"name_tr":364,"name_en":365,"sort":366,"specializations":367},"security","Güvenlik","Security",8,[368,369,372,375,378,381],{"key":241,"name":242,"field":363},{"key":370,"name":371,"field":363},"appsec","AppSec",{"key":373,"name":374,"field":363},"offensive-pentest","Offensive \u002F Pentest",{"key":376,"name":377,"field":363},"cloud-security","Cloud Security",{"key":379,"name":380,"field":363},"devsecops","DevSecOps",{"key":382,"name":383,"field":363},"blue-team-incident","Blue Team \u002F Incident",{"key":385,"name_tr":386,"name_en":387,"sort":388,"specializations":389},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[390],{"key":241,"name":242,"field":385},{"key":392,"name_tr":393,"name_en":393,"sort":394,"specializations":395},"data-engineer","Data Engineer",10,[396],{"key":241,"name":242,"field":392},{"key":398,"name_tr":399,"name_en":400,"sort":401,"specializations":402},"game-dev","Oyun Geliştirme","Game Development",11,[403],{"key":241,"name":242,"field":398},{"key":405,"name_tr":406,"name_en":406,"sort":407,"specializations":408},"ml-engineer","ML Engineer",12,[409],{"key":241,"name":242,"field":405},[14,15,16],{"junior":412,"mid":414,"senior":415},{"questions":413,"median_sec":3},20,{"questions":413,"median_sec":3},{"questions":413,"median_sec":3},[10,417],"en",[419,420],"google","github",21750,true]