-
[JavaScript] Template literal컴퓨터/JavaScript_typescript 2019. 8. 25. 13:20
1) json으로 응답 받고, javascript object로 변환 -> 데이터처리 조작 -> Dom에 추가
데이터 + HTML 문자열의 결합이 필요하기 때문에const data = [ { name: 'coffee-bean', order : true, items: ['americano', 'milk', 'green-tea'] }, { name: 'starbucks', order : false, } ] // backtick을 사용 const template = `<div>Welcome ${data[0].name}!!</div>` console.log(template);
2) Tagged Template literals
-> ${} : template으로 지정한 문자열
- 함수이름`(template)`
const data = [ { name: 'coffee-bean', order : true, items : ['americano', 'milk','green-tea'] }, { name : 'starbucks', order : false, } ] // backtick을 사용한다. //tags, name, items = 배열, 첫 번째 template literal, 두 번째 template literal function func(tags, name, items) { if (typeof items === "undefined") { items = "<span style='color:red'>주문가능한 상품이 없습니다</span>"; }; return (tags[0] + name + tags[1] + items + tags[2]) } const template = func`<h2>Welcome ${data[1].name}!!</h2> <h4>주문 가능 항목</h4><div>${data[1].items}</div>` console.log(template) //결과 : <div>Welcome starbucks!!</div> // <h2> 주문 가능 항목 </h2> <div> 주문가능한 상품이 없습니다 </div>
여기서 tags = ['<div>Welcome',
' !!</div> \n <h2>주문 가능항목</h2><div>',
'</div>']
- forEach를 이용해서 template을 만들고 innerHTML로 html에 넣기
const data = [ { name: 'coffee-bean', order : true, items: ['americano', 'milk', 'green-tea'] }, { name: 'starbucks', order : false, } ] function func(tags, name, items) { if (typeof items === "undefined"){ //items = "주문가능한 상품이 없습니다"; items = "<span style='color:red'>주문가능한 상품이 없습니다</span>"; } return (tags[0] + name + tags[1] + items + tags[2]) } data.forEach((v) => { let template= func`<h2>Welcome ${v.name} !!</h2> <h4>주문 가능 항목</h4> <div>${v.items}</div>` document.querySelector('#message').innerHTML += template; })
* Using functions and conditionals in srings
출처 : 모던 자바스크립트 개발을 위한 ES6강좌(inflearn)
'컴퓨터 > JavaScript_typescript' 카테고리의 다른 글
[javascript] recursion, element.matches(selectorString), ~.함수이름 == -1이면 쓸 수 없는 함수인 것 (0) 2020.01.13 API(Application Programming Interface) (0) 2020.01.07 메서드 (0) 2020.01.03 javascript 함수 3 (0) 2019.11.18 ES6(2015), ES11(2020) (0) 2019.08.22