[JavaScript] 위튜브 클론코딩 - (4) Pug, Partials, Extending, Variables
2021.11.15 > #5.0~#5.6 수강
2021.11.16 > 복습, 정리
2021.11.17 > #5.7~#5.10 수강
REF: Control + c -> 서버종료
Command + 클릭 -> 경로로 이동
TEMPLATES
#5.0 - Returning Html
-
option1: JS파일안 문자열에 직접입력
But 한 줄에 너무 많은 내용이 들어가고, 복붙으로 반복해야함
-
option2: pug를 이용
#5.1 - Pug
Template Engine
템플릿을 이용해서 반복할 필요없이, 뷰를 만드는걸 돕는다.
-
step1// Pug install
-
step2// Pug를 우리의 view engine으로 설정하기.
-> 이렇게 하면, Express가 html을 return하기 위해 Pug를 사용한다.
-
step3// Pug파일을 생성해서 유저에게 보내기
-> 기본적으로 Express는 views폴더안의 파일을 찾음.
-> res.render("viewName");
#5.2 - Partials
-
cwd(current working directory) 현재 작업 디렉토리
: Node.js를 실행하는 디렉토리
-
views의 default 경로: cwd/views
-> 경로변경
app.set("views", process.cwd() + "views경로");
-
#{ }: Pug에서 JS나 변수를 사용하기.
-
include 경로: Pug파일안에 다른 파일을 포함시키기.
#5.3 - Extending Templates
- inheritance(상속)
: base.pug를 partials파일들에 extends(확장,즉 씨뿌리기?)해주기.
partials파일들에 각각 아래와 같이 적어준다.
extends base.pug
- block 키워드: 템플릿의 창문. 무언가를 채워넣을 수 있는 공간
base를 확장한 후에, base의 block에 무언가를 채워넣을 수 있다.
주의할 점은 키워드가 반드시 일치해야한다.
#5.4 - Variables to Templates
- 템플릿으로 변수보내기
: render는 viewName과 템플릿에 보낼 변수 2가지의 인수(argument)를 받는다.
여기서 변수는 무한으로 보낼 수 있다.
res.render("viewName", {constName: " "})
#5.7 - Conditionals
- 변수를 다른 텍스트와 함께 쓰지 않고, 태그에 하나의 변수값만 넣으면,
#{ } 대신 아래와 같이 변수명값을 받아도 된다.
tag = constName
#5.8 - Iteration(반복)
elements의 list를 html에 보여주는 것.
-
step1// controllers로부터 array 혹은 object인 변수명값을 받아야한다.
-
step2// Y안의 각각의 X에 대해서 동일한 작업을 할 수 있다.
Y는 array 혹은 object의 변수명값과 반드시 일치해야한다.
X는 어느것을 입력하든 상관없다.
each X in Y
#5.9 - Mixins
데이터를 받을 수 있는 partial
다른 데이터를 포함하지만 같은 형태의 html을 보여주는 것.
- step1// 아래와 같이 +Z(X)를 통해 정보를 Z로 보내준다.
each X in Y
+Z(X)
- step2// 위에서 받은 X의 정보가 anything으로 받아진다.
이 anything을 활용해서 다른 데이터를 받지만 같은 형태의 html을 짤 수 있다.
mixin Z(anything)
Author And Source
이 문제에 관하여([JavaScript] 위튜브 클론코딩 - (4) Pug, Partials, Extending, Variables), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@sunyoung1542/JavaScript-위튜브-클론코딩-4
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
option1: JS파일안 문자열에 직접입력
But 한 줄에 너무 많은 내용이 들어가고, 복붙으로 반복해야함
option2: pug를 이용
Template Engine
템플릿을 이용해서 반복할 필요없이, 뷰를 만드는걸 돕는다.
step1// Pug install
step2// Pug를 우리의 view engine으로 설정하기.
-> 이렇게 하면, Express가 html을 return하기 위해 Pug를 사용한다.
step3// Pug파일을 생성해서 유저에게 보내기
-> 기본적으로 Express는 views폴더안의 파일을 찾음.
-> res.render("viewName");
cwd(current working directory) 현재 작업 디렉토리
: Node.js를 실행하는 디렉토리
views의 default 경로: cwd/views
-> 경로변경
app.set("views", process.cwd() + "views경로");
#{ }: Pug에서 JS나 변수를 사용하기.
include 경로: Pug파일안에 다른 파일을 포함시키기.
: base.pug를 partials파일들에 extends(확장,즉 씨뿌리기?)해주기.
partials파일들에 각각 아래와 같이 적어준다.
extends base.pug
base를 확장한 후에, base의 block에 무언가를 채워넣을 수 있다.
주의할 점은 키워드가 반드시 일치해야한다.
: render는 viewName과 템플릿에 보낼 변수 2가지의 인수(argument)를 받는다.
여기서 변수는 무한으로 보낼 수 있다.
res.render("viewName", {constName: " "})
#{ } 대신 아래와 같이 변수명값을 받아도 된다.
tag = constName
elements의 list를 html에 보여주는 것.
step1// controllers로부터 array 혹은 object인 변수명값을 받아야한다.
step2// Y안의 각각의 X에 대해서 동일한 작업을 할 수 있다.
Y는 array 혹은 object의 변수명값과 반드시 일치해야한다.
X는 어느것을 입력하든 상관없다.
each X in Y
데이터를 받을 수 있는 partial
다른 데이터를 포함하지만 같은 형태의 html을 보여주는 것.
each X in Y
+Z(X)
이 anything을 활용해서 다른 데이터를 받지만 같은 형태의 html을 짤 수 있다.
mixin Z(anything)
Author And Source
이 문제에 관하여([JavaScript] 위튜브 클론코딩 - (4) Pug, Partials, Extending, Variables), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sunyoung1542/JavaScript-위튜브-클론코딩-4저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)