Vue 2とVue 3のための組積レイアウト
導入
私のVUE 2プロジェクトのかなりの数で、私は図書館を使っていますvue-masonry-wall .
使いやすさとSSRのサポートは、このライブラリを使用する私の決定の重要な要因でした.
しかし、私は現在Nuxt 3のリリースのための私のプロジェクトを準備して、Vue 3に付随する移行の進行中です.
Vue 3に匹敵する石積みレイアウトを見つけることができなかったのでFuxing Loh's
vue-masonry-wall
.結果は@yeger/vue-masonry-wall , タイプスクリプトとVue 3のオリジナルライブラリの書き直し.
それは依存関係を持ちません.そして、最大54 %の束サイズ減少に終わります.
私も作成@yeger/vue2-masonry-wall Vue 2プロジェクトで使用するために.
それも、任意の依存関係をドロップし、最大40 %の束サイズの減少を達成
また、複数の問題が修正されている.
特に、間隔
gap
) 現在、列のカウントを計算しながら、要素の除去がサポートされていると見なされます.インストール
Vue 2
# yarn
$ yarn add @yeger/vue2-masonry-wall
# npm
$ npm install @yeger/vue2-masonry-wall
まず、他のプラグインのようなコンポーネントをインストールする必要があります.相談するVue 2 documentation プラグインのインストールの詳細については.
import Vue from 'vue'
import MasonryWall from '@yeger/vue2-masonry-wall'
Vue.use(MasonryWall)
Vue 3
# yarn
$ yarn add @yeger/vue-masonry-wall
# npm
$ npm install @yeger/vue-masonry-wall
まず、他のプラグインのようなコンポーネントをインストールする必要があります.相談するVue 3 documentation プラグインのインストールの詳細については.
import { createApp } from 'vue'
import MasonryWall from '@yeger/vue-masonry-wall'
const app = createApp()
app.use(MasonryWall)
用途
コンポーネントは
masonry-wall
or MasonryWall
.必要なプロップは
items
, 型の配列any
.の各要素
items
がデフォルトのスロットに渡される.支柱
column-width
を取り込むnumber
, 対象の列幅を指定します.これは、カラム数を計算するために使用されますが、列の実際の幅を定義していません.
同様に
gap
ピクセル内の項目間のギャップを定義し、カラムカウントを計算しながら尊重します.最後に、支柱
ssr-columns
サーバ側のレンダリングコンテキストの列数を指定するために使用できます.成分のすべての支柱が反応性である間、突然変異
items
配列はレイアウトを更新しません.更新を強制するには、新しい配列を
items
プロップコンポーネントの基本的な使用方法を次の例に示します.
インタラクティブデモンストレーションのためにvue-masonry-wall.yeger.eu or vue2-masonry-wall.yeger.eu .
<template>
<MasonryWall :items="items" :ssr-columns="1" :column-width="300" :gap="16">
<template #default="{ item }">
<div :style="{ height: `${item.height}px` }">
{{ item.content }}
</pre>
</template>
</MasonryWall>
</template>
<script>
export default {
data() {
return {
items: [
{ content: 'First', height: 150 },
{ content: 'Second', height: 300 },
{ content: 'Third', height: 150 },
{ content: 'Fourth', height: 450 },
]
}
}
}
</script>
リポジトリ
デリガー / Vue石積み壁
VSR 3のためのSSRサポートとゼロ依存性を持つ応答組積レイアウト
イェーガー/ Vue石積みの壁
Vue 3のためのSSRサポートとゼロ依存性を持つ応答組積レイアウト
機能
📱 応答:設定可能な列幅とギャップに対応.に基づいて
ResizeObserver
. 🔁 反応:プロパティの変更に反応します.
🪶 軽量:ゼロの依存性.1 KB未満.
⬅️ RTL:LTRとRTLレイアウトをサポートします.
リンク
インストール
糸
糸を追加します
東京工業大学
インストールしてください@ yeger/vue石積み壁
用途
Vueからのインポート{ createApp }
からの輸入MasonryWall/Vue石積み壁
const app = createapp ()
アプリ.使用する
小道具
items
: 項目の配列.必要です.column-width
: 列の最小幅px
. gap
: アイテム間の間隔px
. デフォルトは0
. rtl
: ( LTRのトグル)false
) とRTLtrue
) レイアウト.デフォルトはfalse
. ssr-columns
: サーバー側のレンダリングされた列の数.オプションです.View on GitHub
デリガー / VEE 2組積壁
Vue 2に対するSSRサポートとゼロ依存性を持つ応答組積レイアウト
石灰岩の壁
Vue 2のためのSSRサポートとゼロ依存性を持つ応答組積レイアウト
機能
📱 応答:設定可能な列幅とギャップに対応.に基づいて
ResizeObserver
. 🔁 反応:プロパティの変更に反応します.
🪶 軽量:ゼロの依存性.1.5 Kb未満.
⬅️ RTL:LTRとRTLレイアウトをサポートします.
リンク
インストール
糸
$糸追加@イェガー
東京工業大学
$ npmをインストールします
用途
VueからインポートVue
@ yeger/vue 2組積壁から輸入masonrywall
Vue使用する
小道具
items
: 項目の配列.必要です.column-width
: 列の最小幅px
. gap
: アイテム間の間隔px
. デフォルトは0
. rtl
: ( LTRのトグル)false
) とRTLtrue
) レイアウト.デフォルトはfalse
. ssr-columns
: サーバー側のレンダリングされた列の数.オプションです.石積みの壁.
View on GitHub
Reference
この問題について(Vue 2とVue 3のための組積レイアウト), 我々は、より多くの情報をここで見つけました https://dev.to/deryeger/masonry-layout-in-vue-3-4bghテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol