Pug, Template #02(Iteration, Mixin)
文字列化(string representation)オブジェクトを作成します。
videoController.js
export const trending = (req, res) => {
const videos = [
{
title: "Hello",},
{title: "video #2",
},
{
title: " What's up",
},
];
http://localhost:4000/ 확인해 보면
[object Object]
[object Object]
[object Object]
このようにして出てきます変更できます.ビデオにはビデオがあり、
video는 title
があります.home.pug
までvideo.title
と書きます.ul
each video in videos
li=video.title
titleが表示されますこれらのオブジェクトのリストを送信することもできます。
数字でなくても、オブジェクトであってもよい.
より複雑なビデオを作成します。
mixinを利用します
mixinは
base.pug
で使用したpartialsと同じです.mixinはpartialsですが、データを受信できるpartialを表します.
footerはhtmlの一部を表し、データを受信できません.
フッターがページを変えたが,内容は相変わらずだ.
mixinはfooterで使用されているのとは異なり、同じ構造のhtmlブロックですが、データを置き換えて入れます.
mixinは賢い一部です。
videoController.js
export const trending = (req, res) => {
const videos = [
{
title: "First Video",
rating: 5,
comments: 10,
createdAt: "2 minutes ago ",
views: 100,
id: 1,
},
{
title: "Second Video",
rating: 3,
comments: 5,
createdAt: "2 minutes ago ",
views: 20,
id: 1,
},
{
title: "Third Video",
rating: 4,
comments: 8,
createdAt: "2 minutes ago ",
views: 80,
id: 1,
},
];
確認するとTitleしか出てこない
home.pugに行って修正します
block content
h2 Welcome here you will see the trending videos.
each video in videos
div
h4=video.title
ul
li #{video.rating}/5.
li #{video.comments} comments.
li Posted #{video.createdAt}.
li #{video.views} views.
Title部分はliを使う必要がないのでdivに変更しました。
componentと呼ばれるビデオ。
ソフトウェア開発者や全スタック開発者のように考えるなら、YouTubeを思い出してみてはいかがでしょうか.
多くのビデオが表示され、サムネイルも表示され、タイトルやクリック率も表示されます.
いずれかのビデオをクリックして再生すると、サイドバーに他のビデオのプレイリストが表示されます.
前ページでは、クリックして再生した動画と似たような動画の種類が見られました.
サムネイル、タイトル、クリック率など、どこでもリピートできるコンポーネント.
youtubeは複数のページでコンポーネントを再利用します.
おすすめビデオのサイドバー、トップページ、人気ビデオのページ、各チャンネルのすべてのビデオ
フレームの中で同じように見えます.
最終的に繰り返し使用する文を最小化するために使用されるpartial gamixin.
データを受信できる予め作成されたhtmlブロックと見なすことができる.
viewsフォルダにmixinフォルダを作成します.
中ではビデオというmixinを作ります
一般的なpartialは最初は追加できるものはありませんが、mixinは異なる内容を追加する必要があります.
video.pug
mixin video(info)
div
h4=info.title
ul
li #{info.rating}/5.
li #{info.comments} comments.
li Posted #{info.createdAt}.
li #{info.views} views.
こうなった以上、home.pug
で削除します.そしてお化粧直ししてあげます
block content
h2 Welcome here you will see the trending videos.
each view in videos
+video(view)
ビデオの各viewに対してvideoというmixinを呼び出します.viewという名前の情報オブジェクトを送信しています.
そしてビデオmixinの中の情報になります.
その後、リフレッシュでエラーが発生します.
ビデオは機能ではありません.
pug_mixins.video
は機能ではありません.ビデオを書いています.また、フッターを入れたときとは別の形でビデオを書いています.
脚注は単純に含まれているだけです.
mixinの場合はプラス+です.
home.pug
に増加しました.extends base.pug
include mixins/video
後でリフレッシュするのは以前と同じように仕事をします.mixinをページに適用できるようになりました.
ホームページ、検索ページ、サイドバー、チャンネルページ
これがhtmlコードを再利用する方法です.
Reference
この問題について(Pug, Template #02(Iteration, Mixin)), 我々は、より多くの情報をここで見つけました https://velog.io/@0_cyberlover_0/Pug-Template-02Iteration-Mixinテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol