묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헛 권한 요청 드립니다.
인프런 아이디 : mwkang@ecstel.co.kr인프런 이메일 : mwkang@ecstel.co.kr깃헙 아이디 : mwkang@ecstel.co.kr깃헙 Username : goo1949
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
github 접근권한 주세요
인프런 아이디 : illb인프런 이메일 : illb@illb.co.kr깃헙 아이디 : goodmanrabbit@gmail.com깃헙 Username : kangguchul
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 권한 요청 드립니다!
인프런 아이디 : skyee23@gmail.com인프런 이메일 : skyee23@gmail.com깃헙 아이디 : skyee23@gmail.com깃헙 Username : xxsank
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
권한요청 드립니다
안녕하세요, 권한 요청드립니다.- 인프런 아이디: tpdud406@gmail.com- 인프런 이메일: tpdud406@gmail.com- 깃허브 아이디: tpdud406@gmail.com- 깃허브 username: tpdud406
-
해결됨입문자를 위한, ES6+ 최신 자바스크립트 입문
ebook 문의
소스파일은 받았는데 ebook은 어디서 받아야하나요?
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
part1 강의는 뭔가요??
제가 part2만 수강중이어서요part1은 뭔가요??
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
속성명의 축약 특징 리팩토링에 관한 질문
객체의 속성명과 값이 같으면하나만 쓰면 된다고 하셨는데실무에서 작업하실때 이러한 편리함때문에 변수선언의 설계를일부러 같이 객체의 속성명이랑 값이랑 같이 하는 편인가요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 권한요청 부탁드립니다.
인프런 아이디 : jongseungim5348@gmail.com인프런 이메일 : jongseungim5348@gmail.com깃헙 아이디 : jongseungim5348@gmail.com깃헙 Username : limjongseung
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 권한 요청 드립니다.
권한 요청 드립니다.인프런 아이디 : choigy0331@naver.com인프런 이메일 : choigy0331@naver.com깃헙 아이디 : choigy1001깃헙 Username : Keun young
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
권한요청부탁드립니다.
인프런 아이디 : hskim1559인프런 이메일 : hskim1559@gmail.com깃헙 아이디 : hskim1559@gmail.com깃헙 Username : dalcomz
-
해결됨실전 프로젝트로 배우는 타입스크립트
Total Recovered가 화면에 0으로 나옵니다.
위 캡처처럼 Total Recovered가 0으로 나옵니다.네트워크 패널에서 확인해보니 TotalRecovered 값이 다 0으로 들어옵니다.이거는 api의 문제인건가요?
-
미해결타입스크립트 입문 - 기초부터 실전까지
함수 getElementsByClassName의 리턴변수 초기값
interface Global { menuLinks: HTMLCollectionOf<HTMLElement>; } const global: Global = { menuLinks: null, }; function a(){ global.menuLinks = document.getElementsByClassName('class-1 ') as HTMLCollectionOf<HTMLElement>; } 위와 같이 global 전역변수를 우선 초기화하고, 후에 document.getElementsByClassName을 사용하여 덮어쓰기 합니다. 또한 HTMLCollectionOf<HTMLElement>으로 타입단언을 했습니다.1. global.menuLinks 의 초기값을 null로 하면 오류가 발생하는데 null이 아니라 무엇으로 해야하나요? 2. 그리고 new HTMLCollectionOf<HTMLElement>() 이런식의 생성자 호출은 안되는것 같은데 이유를 모르겠습니다. 3. new Element() 형식으로는 초기화가 진행되는것 같습니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
권한요청드립니다!
인프런 아이디 : seajin97@g.shingu.ac.kr인프런 이메일 : seajin97@g.shingu.ac.kr깃헙 아이디 : seajin97@g.shingu.ac.kr깃헙 Username : simsimhang 한번 권한 받았었는데 시간이 지나니까 권한이 사라져있습니다
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
권한요청드립니다!
권한 요청 드립니다.인프런 아이디 : koorihime@naver.com인프런 이메일 : koorihime@naver.com깃헙 아이디 : koorihime@naver.com깃헙 Username : minhyuck woo
-
해결됨실전 프로젝트로 배우는 타입스크립트
강의 내용 질문입니다.
강의에서는type updateProduct = Partial<Product>에서 updateProduct의 모든 속성들이 아래 처럼 옵셔널이 된다고 말씀하셨는데id?: number;현재는 타입스크립트 버전이 달라서 그런지단순히 옵셔널이 되는게 아니라 undefined도 될 수 있다고 나옵니다.id?: number | undefined;따라서 함수에서 만약 brand 속성을 가져온다면//강의 내용 productItem.brand.length //현재 버전 productItem.brand?.length이렇게 undefined가 아닐 때만 가져오도록 변경되어 있는데 조금 헷갈리는 개념은 Partial 유틸리티를 사용함으로 써 Product의 모든 속성을 옵셔널로 바꾼다 이지만 여기서 왜 undefined가 될 수 있는지 이해가 안됩니다.모든 속성을 옵셔널로 가져오기 때문에 가져오는 속성은 undefined가 될 수 없는게 아닌가요? 추가적으로, lib.es5.d.ts 파일에서는 강의 내용과 같지만Partial에 마우스 커서를 올렸을 때 나오는 결과는 다릅니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃허브 권한 부탁드립니다.
인프런 아이디: jhpark@nicednr.co.kr인프런 이메일: jhpark@nicednr.co.kr깃헙 아이디: leehot2665@naver.com깃헙 Username: Zero-Human
-
미해결프로젝트로 배우는 React.js
36 블로그 db에서 받아와서 화면에 보여주기 에서
const[post,setPost]=useState([]); null이아니라 []을넣으니 잘 되네요
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 권한 요청드립니다
인프런 아이디: gil인프런 이메일: gil@projectlien.co.kr깃헙 아이디: gilha.leee@gmail.com깃헙 Username: gilhalee깃헙 권한 요청 부탁드립니다
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 권한 재요청 드립니다.!!
깃헙 권한 재요청 드립니다! 인프런 아이디 : jungsr417@hanwha.com인프런 이메일 : jungsr417@hanwha.com깃헙 아이디 : jungsr417깃헙 Username : jsr 감사합니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
토글 부분에서 리팩토링이 되지 않아 질문드립니다.
저는 getTime() 으로 타임을 받아서 value 부분을 객체로 만들어서 넘기고 있었습니다.store에서 sort 기능을 추가하였고완료된건을 아래로 넘기는 작업을하고 완료되지않은 건은 위로 올려서 나뉘게 작업하였습니다.그런대 이전에 store을 쓰지않을때는 단순하게 토글할때 sort를 함수로 만들어서 호출하였더니 잘되었습니다.store에 함수로 만들고 호출하고 나서는 리팩토링이 되지 않습니다 ㅠㅠ새로고침했을때는 잘 작동합니다. 또한 console창에도 바뀐 로직으로 잘 뜹니다.toggleOneItem 부분 봐주시면 감사합니다fetch부분에서는 잘되어서 리스트 가져올땐 잘되었는대 ㅠㅠ 토글하면서 잘 안돼더라구요!제가 어떤것을 실수 했을까요..? import Vue from "vue"; import Vuex from "vuex"; Vue.use(Vuex); //글로벌하게 Vuex를 쓰겠다는 의미 //해당 라이브러리를 사용하기 위한 초기화 코드를 실행하는 구문 //뷰에 연결해야 vuex를 사용할 수 있다 let sortItem = []; function sortlist(state) { const trueItem = state.filter( (item) => item.completed === true ); const falseItem = state.filter( (item) => item.completed === false ); trueItem.sort(function (a, b) { return b.value.time - a.value.time; //내림차순 }); falseItem.sort(function (a, b) { return b.value.time - a.value.time; //내림차순 }); sortItem = [...falseItem, ...trueItem]; return sortItem; } const storage = { fetch() { //네트워크의 리소스를 쉽게 비동기적으로 가져오기 //app에 있는 created를 store에 붙이기 let arr = []; if (localStorage.length > 0) { for (let i = 0; i < localStorage.length; i++) { if (localStorage.key(i) !== "loglevel:webpack-dev-server") { const item = localStorage.getItem(localStorage.key(i)); arr.push(JSON.parse(item)); //arr배열을 만들어서 푸시해주기 sortlist(arr); } } } return sortItem; // {} 단위밖에서는 arr을 호출할 수 없으므로 return 반환 }, }; // //다른 컴포넌트에서 this.$store 로 사용할 수 있음 export const store = new Vuex.Store({ state: { headText: "TODO it!", //헤더에 들어갈 값 등록하기 //todoItems: [], todoItems: storage.fetch(), //위에 만들어준 값을 넣어준다 }, getters: { getTotalNum(state) { //인자는 state return state.todoItems.length; }, getTrueNum(state) { //인자는 state const trueItem = state.todoItems.filter( (item) => item.completed === true ); return trueItem.length; }, }, mutations:{ addOneItem(state, value) { //console.log(value) const obj = { completed: false, value: value }; //const를 쓰면 재선언할 수 없어 디버깅할 때 충돌을 줄일 수 있음 //오브젝트로 만들어줬기 때문에 obj를 찍게 되면 object object가 찍힘, 따라서 문자열로 변환해 주는것 localStorage.setItem(value.item, JSON.stringify(obj)); //JavaScript 값이나 객체를 JSON 문자열로 변환 if(!state.todoItems.some(element => element.value.item == value.item)){ state.todoItems.unshift(obj); }else{ alert('이미 작성된 내용입니다.'); } }, removeOneItem(state, payload) { //console.log(payload); localStorage.removeItem(payload.todoItem.value.item); //객체일때 로컬스트리지에서 삭제하기 state.todoItems.splice(payload.index, 1); //현재 리스트에서 삭제하기 }, toggleOneItem(state, payload) { //todoItem.completed = !todoItem.completed; //이벤트로 넘어온값을 바꾸는 것을 안티패턴이라고 하며 어짜피 props로 내려준 값이 변경되므로 아래와같이 변경한것 state.todoItems[payload.index].completed = !state.todoItems[payload.index].completed; //localStorage 갱신하기 localStorage.removeItem(payload.todoItem.value.item); //localStorage는 업데이트 기능이 없으므로 삭제 후 localStorage.setItem(payload.todoItem.value.item, JSON.stringify(payload.todoItem)); //새로 추가해준다, 이때 completed 값이 바꼈으므로 바뀐값이 들어오게 된다. sortlist(state.todoItems); //리팩토링이안돼네...추후에 해결할것 ㅠㅠ }, clearAllItems(state) { localStorage.clear(); state.todoItems = []; }, }, });