FrontEnd/Vue.js

[Vue.js/Nuxt] vue-masonry-css๋ฅผ ์ด์šฉํ•ด์„œ ์นด๋“œ๋ ˆ์ด์•„์›ƒ ๊ตฌํ˜„ํ•˜๊ธฐ

๊น€ํ‰๋ฒ”๋‹˜ 2022. 4. 30. 21:28
๋ฐ˜์‘ํ˜•

vue-masonry-css ๋ ˆ์ด์•„์›ƒ ์ ์šฉํ•˜๊ธฐ

๐Ÿ“Œmasonry Layout

masonry๋Š” ๊ฑด๋ฌผ์˜ ๋ฒฝ, ๋Œ๋ฒฝ ๋“ฑ์œผ๋กœ ๋ฒฝ๋Œ์„ ์Œ“๋Š” ๊ณต์‚ฌ๋ฅผ ๋งํ•œ๋‹ค.

๋ณดํ†ต ์ด๋Ÿฐ ๋ ˆ์ด์•„์›ƒ์€ ํ•€ํ„ฐ๋ ˆ์ŠคํŠธ ์Šคํƒ€์ผ์ด๋ผ๊ณ  ํ•ด์„œ 

๋†’์ด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ž์˜ ์นด๋“œ๋“ค์„ ๋†’์ด์— ๋งž์ถฐ ๋”ฑ๋”ฑ ๋“ค์–ด๋งž๋Š” ํ˜•์‹์˜ ๋ ˆ์ด์•„์›ƒ์ด๋‹ค.

 

 

 

๐Ÿ‘ฉ‍๐Ÿ’ปvueํ”„๋กœ์ ํŠธ์—์„œ masonry ๋ ˆ์ด์•„์›ƒ ์ด์šฉํ•˜๊ธฐ

์‹ค์ œ๋กœ ๋งŒ๋“ค๋ ค๋ฉด, npm ์ค‘์— vue-masonry-css๋ฅผ ์ด์šฉํ•˜๋ฉด ์†์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

vue-masnory-css

vue์—์„œ masnory ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค์–ด์ค„ npm์ด ์กด์žฌํ•œ๋‹ค.

์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ๊ทธ๋ƒฅ npm install๋งŒ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

npm i vue-masonry-css --save

 

plugins/client.js

import Vue from 'vue'
import VueMasonry from 'vue-masonry-css'
 
Vue.use(VueMasonry);

 

sample.vue

<template>
    <div>
        <masonry :cols="3" :gutter="10" class="card-style">
            <div v-for="(item, index) in 7" :key="index">
                <img :src="require(`~/assets/images/${item}.jpg`)"/>
            </div>
        </masonry>
    </div>
</template>
<style>
    .card-style > div > div {
        border-radius: 5px;
        padding:20px;
        margin:0 0 5px 0;
    }

    .card-style > div > div > img {
        width:100%;
    }

</style>

 

์ƒ˜ํ”Œ ํ™”๋ฉด

masonry ๋ ˆ์ด์•„์›ƒ

ํ•ด๋‹น ์ฝ”๋“œ๋กœ ์ ์šฉ์„ ํ•ด๋ณด๋ฉด,

๋†’์ด๊ฐ€ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ์–ด๋„ ์•Œ์•„์„œ ์„ธํŒ…์ด ๋œ๋‹ค.

 

๋ฐ˜์‘ํ˜•