{
    "componentChunkName": "component---src-templates-docs-js",
    "path": "/veckoanvisningar/kursvecka-13/resurser/inspelningar",
    "result": {"data":{"site":{"siteMetadata":{"title":"Linnéuniversitetet","language":"sv","courseCode":"1dv025"}},"mdx":{"fields":{"id":"9b9b4b5b-5e78-5ab4-b0a3-3999a75e8c01","title":"Inspelningar","slug":"/veckoanvisningar/kursvecka-13/resurser/inspelningar"},"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Youtube = makeShortcode(\"Youtube\");\nvar Hint = makeShortcode(\"Hint\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h3\", null, \"Komposition av komponenter\"), mdx(Youtube, {\n    link: \"https://youtu.be/0-bMLiOp98Q\",\n    mdxType: \"Youtube\"\n  }), mdx(\"p\", null, \"1h 8m | \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://gitlab.lnu.se/1dv025/content/coursesite/-/raw/main/content/veckoanvisningar/kursvecka-13/resurser/Komposition.pdf?inline=false\"\n  }, \"Presentation\"), \" | \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://gitlab.lnu.se/1dv025/content/examples/todo\"\n  }, \"Exempel - Todo Application\")), mdx(\"details\", null, mdx(\"summary\", null, \"\\uD83D\\uDCD5 Errata\"), mdx(Hint, {\n    type: \"info\",\n    mdxType: \"Hint\"\n  }, \"I videon \\xE4r vi lite f\\xF6rvirrade n\\xE4r det kommer till `bubbles: true`. Det \\xE4r inte d\\xE5ligt att s\\xE4tta bubbles till true utan det kommer att inneb\\xE4ra att h\\xE4ndelsen bubblar upp i DOM:en men stannar n\\xE4r den n\\xE5r en ShadowRoot. Detta g\\xF6r att komponenter som \\xE4r in b\\xE4ddade i en Shadow DOM inte kommer att skicka sina h\\xE4ndelser utanf\\xF6r denna DOM. I exemplet \\xE4r todo-items slottade in och s\\xE5ledes en del av den utanf\\xF6rliggande, vanliga DOMen och kan d\\xE4rf\\xF6r bubbla sina h\\xE4ndelser s\\xE5 som vi vill. Det vi ska undvika \\xE4r `composed: true` i v\\xE5ra komponenter d\\xE5 detta g\\xF6r att h\\xE4ndelsen kan vandra f\\xF6rbi en ShadowRoot.\", mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"    this.dispatchEvent(new window.CustomEvent('change', {\\n      detail: strikethrough,\\n      composed: false,\\n      bubbles: true\\n    }))\\n\")), mdx(\"p\", null, \"  \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"composed och bubbles har standardv\\xE4rdet \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"false\")))), mdx(Hint, {\n    type: \"info\",\n    mdxType: \"Hint\"\n  }, \"En fr\\xE5ga som ofta f\\xF6rekommer \\xE4r, var ska vi koppla v\\xE5ra h\\xE4ndelsehanterare? I connectedCallback eller i konstruktorn. Som vanligt \\xE4r beskedet. Det beror p\\xE5.\", mdx(\"p\", null, \"  H\\xE4ndelsehanterare som s\\xE4tts p\\xE5 element som \\xE4r i v\\xE5r shadowDOM s\\xE4tter vi l\\xE4mpligast i konstruktorn. S\\xE4tter vi h\\xE4ndelsehanterare p\\xE5 n\\xE5got som \\xE4r utanf\\xF6r v\\xE5r shadowDOM s\\xE5 b\\xF6r vi s\\xE4tta dessa i connectedCallback vilket ocks\\xE5 inneb\\xE4r att vi i dessa fall beh\\xF6ver ta bort h\\xE4ndelsehanterarna i disconnectedCallback.\"), mdx(\"p\", null, \"  En bra genomg\\xE5ng kring detta \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://stackoverflow.com/questions/59970043/custom-element-setup-constructor-vs-connectedcallback\"\n  }, \"ges som svar p\\xE5 f\\xF6ljande fr\\xE5ga p\\xE5 Stack Overflow.\"))), mdx(Hint, {\n    type: \"info\",\n    mdxType: \"Hint\"\n  }, \"I videon n\\xE4mns det att ni ska undvika att kasta undantag fr\\xE5n komponenter. Jag vill omformulera detta till \\\"F\\xF6rs\\xF6k undvika att kasta undantag fr\\xE5n komponenter\\\". Om det \\xE4r n\\xF6dv\\xE4ndigt, s\\xE5 som ex. om en fetch misslyckas kan det vara bra att kasta undantag s\\xE5 att yttre komponenter kan f\\xE5nga upp detta och visa felmeddelanden till anv\\xE4ndaren eller f\\xF6rs\\xF6ka sj\\xE4lvl\\xE4ka applikationen.\")), mdx(\"br\", null), mdx(\"br\", null), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=0s\"\n  }, \"Introduktion\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=128s\"\n  }, \"Vad \\xE4r en bra komponent Niklas?\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=252s\"\n  }, \"Komposition av komponenter\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=690s\"\n  }, \"Exempel - Todo application\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=1423s\"\n  }, \"Designregler - Bubbling av event (se informationstext nedan)\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=1690s\"\n  }, \"Nestling av komponenter\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=1760s\"\n  }, \"Nestling av komponenter i normala DOMen\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=1854s\"\n  }, \"Nestling av komponenter i shadow DOMen\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=1953s\"\n  }, \"Designregler - H\\xE4rma de inbyggda elementen\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=2370s\"\n  }, \"Designregler - Konfigurering via attribut\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=2530s\"\n  }, \"Designregler - Inkapsling\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=2820s\"\n  }, \"Orkestrering - Kommunikation mellan komponenter\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=3150s\"\n  }, \"Case study - Flygkalkylatorn\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=3510s\"\n  }, \"Designregler - Fallera tyst\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=3710s\"\n  }, \"Lyssnar p\\xE5 f\\xF6r\\xE4ndring med \\\"slotchange\\\"\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=0-bMLiOp98Q&t=3855s\"\n  }, \"Avslutning\"))));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#komposition-av-komponenter","title":"Komposition av komponenter"}]},"parent":{"relativePath":"veckoanvisningar/kursvecka-13/resurser/inspelningar.md"},"frontmatter":{"metaTitle":null,"metaDescription":null,"fullWidth":null}},"allMdx":{"edges":[{"node":{"fields":{"slug":"/examinationsuppgifter","title":"Examinationsuppgifter"}}},{"node":{"fields":{"slug":"/samlingar","title":"Samlingar"}}},{"node":{"fields":{"slug":"/","title":"Webbprogrammering på klientsidan (1DV025) - en kurs med JavaScript i fokus"}}},{"node":{"fields":{"slug":"/sandbox/basic-elements","title":"Basic elements"}}},{"node":{"fields":{"slug":"/sandbox/code","title":"Code"}}},{"node":{"fields":{"slug":"/sandbox/exercise","title":"Exercises"}}},{"node":{"fields":{"slug":"/sandbox/frontmatter","title":"Frontmatter"}}},{"node":{"fields":{"slug":"/sandbox/hint","title":"Hint"}}},{"node":{"fields":{"slug":"/sandbox","title":"Sandbox"}}},{"node":{"fields":{"slug":"/sandbox/markdown-import","title":"Imported markdown"}}},{"node":{"fields":{"slug":"/sandbox/mermaid","title":"Mermaid"}}},{"node":{"fields":{"slug":"/sandbox/tabs","title":"Tabs"}}},{"node":{"fields":{"slug":"/sandbox/youtube","title":"YouTube"}}},{"node":{"fields":{"slug":"/studieguide/examination","title":"Examination"}}},{"node":{"fields":{"slug":"/studieguide/forvantningar","title":"Förväntningar"}}},{"node":{"fields":{"slug":"/studieguide","title":"Studieguide"}}},{"node":{"fields":{"slug":"/studieguide/kommunikationsstrategi","title":"Kommunikationsstrategi"}}},{"node":{"fields":{"slug":"/studieguide/kursledning","title":"Kursledning"}}},{"node":{"fields":{"slug":"/studieguide/kursvardering","title":"Kursvärdering"}}},{"node":{"fields":{"slug":"/studieguide/larresurser","title":"Lärresurser"}}},{"node":{"fields":{"slug":"/studieguide/registrering","title":"Registrering"}}},{"node":{"fields":{"slug":"/studieguide/valkommen","title":"🎉 Välkommen!"}}},{"node":{"fields":{"slug":"/veckoanvisningar","title":"Veckoanvisningar"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a/a1","title":"A1 - Online-test"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a/a2-beskrivande-statistik","title":"A2 - Beskrivande statistik"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a/a3-tjugoett","title":"A3 - Tjugoett"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a","title":"Delkurs A"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b1","title":"B1 - Online-test"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b2","title":"B2 - The Quiz app"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b3","title":"B3 - PWD"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b","title":"Delkurs B"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om","title":"Om examination"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/inlamning-via-mr","title":"Inlämning via Merge request"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/kom-igang","title":"Kom igång med en uppgift"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/muntlig-examination","title":"Muntlig examination"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a/guider","title":"Guider"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a","title":"Delkurs A"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a/inspelningar","title":"Stödjande inspelningar"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a/ovningar","title":"Övningar"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b/inspelningar","title":"Stödjande inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01","title":"Kursvecka 1 - Satser"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/guide-ovningsuppgifter","title":"Guide - Övningsuppgift"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/guide-vscode","title":"Guide - VSCode"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02","title":"Kursvecka 2 - Funktioner, moduler"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/guide-nodejs","title":"Guide - Node.js"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/examinationsuppgift","title":"Guide - Examinationsuppgift"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/guide-jsdoc","title":"Guide - JSDoc"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03","title":"Kursvecka 3 - Styrstrukturer"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04","title":"Kursvecka 4 - Arrayer"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/guide-jest-spec-name","title":"Guide - Så gör du när du inte vill köra alla tester varje gång"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05","title":"Kursvecka 5 - Objekt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06","title":"Kursvecka 6 - Klasser"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07","title":"Kursvecka 7 - Arv"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08","title":"Kursvecka 8 - Webbläsaren"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09","title":"Kursvecka 9 - HTML-element"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10","title":"Kursvecka 10 - Webbkomponenter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11","title":"Kursvecka 11 - Händelser"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12","title":"Kursvecka 12 - AsyncAwait"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b","title":"Delkurs B"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13","title":"Kursvecka 13 - Komposition"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14","title":"Kursvecka 14 - Lagring"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-15","title":"Kursvecka 15 - Installerbara PWAs"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-15/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-15/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-15/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16","title":"Kursvecka 16 - Pålitliga PWAs"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-17-19","title":"Kursvecka 17-19 - Kapabla PWAs"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-17-19/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-17-19/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-17-19/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-20","title":"Kursvecka 20 - Examination"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-20/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/resurser/kom-igang","title":"Kom Igang"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/resurser/mr","title":"Mr"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/00-om-git","title":"Introduction"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/10-git","title":"Setting Up"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/12-commit-messages","title":"Commits best practice"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/12-multipla-datorer","title":"Multiple computers"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/14-multiple-git-user-configs","title":"Multiple Git User Configs"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/16-ssh-troubleshoot","title":"SSH-keys troubleshooting"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/20-detta-hander-vid-git-kommandon","title":"Detta händer vid git-kommandon"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider","title":"Guide - Git versionshantering"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-15/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-17-19/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b/ovningar","title":"Övningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/ovningsuppgifter","title":"Övningsuppgifter"}}}]}},"pageContext":{"id":"9b9b4b5b-5e78-5ab4-b0a3-3999a75e8c01"}},
    "staticQueryHashes": ["253607798","3706406642","710574383"]}