この記事では、Netlifyに展開されたeコマースの例を介して、NUXTアプリケーションで動的ルーティングを作成する方法を示します。これは一般的なシナリオです。APIからデータを取得しますが、これは不明であり、いつでも多数または変更があります。幸いなことに、Nuxtは動的ルーティングを作成するプロセスを非常にスムーズにします。
始めましょう!
デモサイトGitHubリポジトリ
ページを作成します
この例では、Mockarooを使用していくつかの仮想ストアデータを作成し、静的フォルダーに保存しました。通常、VuexストアでFetchまたはAxiosとアクションを使用してこのデータを収集します。いずれにせよ、データをstore/index.js
にVuexを使用して保存します。これには、UIステータスと空のカート配列が含まれています。
「〜/static/storedata.json」からデータをインポートする const state =()=>({{ cartuistatus:「アイドル」、 保存された:データ、 カート:[] })
NUXTでは、ルートを設定するためにpages
ディレクトリに.vue
ファイルを作成するだけであることに注意する必要があります。したがって、 index.vue
ページがホームページとして、ショッピングカートなどのcart.vue
ページがあります。NUXTは、これらのページのすべてのルートを自動的に生成します。
動的ルートを作成するには、これらのページを保存するディレクトリを作成します。この場合、ルートが各製品の詳細ビューを指すため/products
と呼ばれるディレクトリを作成しました。
このディレクトリでは、アンダースコアを備えたページと、ルートの作成に使用したいユニークな識別子を作成します。カート内のデータを見ると、次のようになります。
[ { 「ID」:「9D436E98-1DC9-4F21-9587-76D4C0255E33」、 「色」:「ゴールデンロッド」、 「説明」:「Mauris Enim Leo、Rhoncus Sed、Vestibulum Sit Amet、Cursus ID、Turpis。IntegerAliquet、Massa Id Lobortis convallis、Tortor Riskus dapibus augue、Vel Accumsan Tellus nisi eu orci。 「性別」:「男性」、 「名前」:「デジアダ」、 「レビュー」:「Productize Virtual Markets」、 「星空」:3 「価格」:50.40、 「IMG」:「1.jpg」 }、 … ]
各エントリのIDが一意であることがわかりますので、これは良い候補の識別子であり、ページに名前を付けます。
_id.vue
これで、ルーティングパラメーターを使用して、特定のページのIDをデータに保存できます。
データ() { 戻る { ID:this。$ route.params.id、 } }、
上記のエントリについては、devtoolsのデータを見ると、次のようになります。
ID: "9D436E98-1DC9-4F21-9587-76D4C0255E33"
これを使用して、ストレージからこのエントリに関する他のすべての情報を取得できます。 mapState
を使用します:
"vuex"から{mapstate}をインポートします。 計算:{ ... MapState(["Storedata"])、 製品() { this.storedata.find(el => el.id === this.id)を返します。 } }、
格納されているのは、一意のIDでエントリを見つけるためにstoredata
ています!
NUXT構成に通知します
YARNビルドを使用してアプリケーションを構築すると、完了ですが、NUXTを使用して、展開用の静的サイト、この場合はNetlifyで作成します。 Nuxtを使用して静的サイトを作成するとき、 yarn generate
コマンドを使用します。 nuxt.config.js
のgenerate
コマンドを使用して、動的ファイルについてnuxtに知らせる必要があります。
このコマンドは、次のような配列に解析された約束を返す関数を期待します。
デフォルトのエクスポート{ 生成する: { ルート:[ '/product/1'、 '/product/2'、 '/product/3' ] } }
これを行うには、ファイルの上部に静的ディレクトリからデータを導入し、関数を作成します。
'./static/storedata.json'からデータをインポートする let dynamicRoutes =()=> { 新しい約束を返す(Resolve => { Resolve(data.map(el => `product/$ {el.id}`)) }) }
次に、構成の関数を呼び出します。
生成する: { ルート:DynamicRoutes }、
Axiosを使用してAPIからデータを収集する場合(より一般的です)、次のようになります。
「axios」からaxiosをインポートする let dynamicRoutes =()=> { return axios.get( 'https:// your-api-here/products').then(res => { RETURN RES.DATA.MAP(PRODUCT => `/PRODUCT/$ {PRODUCT.ID}`) }) }
このようにして、ダイナミックルーティングセットアップを完了しました!サーバーをシャットダウンして再起動すると、各製品の動的ルーティングが有効になります!
この記事の最後の部分では、ページの残りの部分がどのように作成され、プロジェクトをカートに追加する方法を説明し続けます。これはあなたも学びたいものかもしれません。
ページに記入します
これで、 product
を計算したプロパティを介してすべての情報にアクセスできるため、必要なフォーマットをページに入力できます。
<main><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/?x-oss-process=image/resize,p_40" class="lazy" alt="NUXTアプリケーションで動的ルートを作成します"><h1 id="product-name"> {{product.name}}</h1> <h4 id="product-price-ドル">{{product.price |ドル}}</h4> <p>{{ 製品説明 }}</p> ... </main>
この場合、保管中のカートにアイテムを追加する必要があります。アイテムを追加および削除する機能を追加します(ゼロ以下の数の削減を許可しません)
<p> <button> 0 ? quantity-- : quantity = 0"> - </button> {{ 量 }} <button> </button> </p> ... <button>カートに追加</button>
このコンポーネントの方法では、アイテムと新しいフィールド(数量)を配列に追加します。これは、ストアの変異にペイロードとして渡されます。
方法:{ cartadd(){ let item = this.product; item.quantity = this.quantity; this.tempcart.push(item); this。$ store.commit( "addtocart"、item); } }
Vuexストレージでは、プロジェクトが既に存在するかどうかを確認します。それが存在する場合、数のみを増やします。存在しない場合は、数量を含むアイテム全体をカートアレイに追加します。
addtocart :( state、payload)=> { itemfound = falseとします state.cart.foreach(el => { if(el.id === payload.id){ el.quantity = payload.quantity itemfound = true } }) if(!itemfound)state.cart.push(ペイロード) }
ストレージ内のゲッターを使用して合計を計算できるようになりました。これは最終的にStripe ServerLess関数に渡されます(これについての別の投稿が近日公開されます!)。 Reduceは多くの値から値を取得するのに非常に優れているため、これを使用します。 (私はここに詳細を書きました。
carttotal:state => { if(!state.cart.length)return 0 return state.cart.reduce((ac、next)=> ac next.quantity * next.price、0) }
デモサイトGitHubリポジトリ
それでおしまい!個々の製品ページをセットアップしており、Nuxtはビルド時にすべての個別のルートを生成します。あなたは間違いなく自分のためにnuxtを試してみたいと思うでしょう。 ?
以上がNUXTアプリケーションで動的ルートを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

CSSを備えたカスタムカーソルは素晴らしいですが、JavaScriptを使用して次のレベルに物事を引き出すことができます。 JavaScriptを使用して、カーソル状態間で移行し、カーソル内に動的テキストを配置し、複雑なアニメーションを適用し、フィルターを適用できます。

2025年には、互いに互いに跳ね返る要素を伴うインタラクティブなCSSアニメーションは、CSSにPongを実装する必要はありませんが、CSSの柔軟性とパワーの増加はLee&#039;の疑いを補強します。

CSSバックドロップフィルタープロパティを使用してユーザーインターフェイスをスタイルするためのヒントとコツ。バックドロップフィルターを複数の要素間でレイヤー化する方法を学び、それらを他のCSSグラフィカル効果と統合して、精巧なデザインを作成します。

まあ、SVG&#039;の組み込みのアニメーション機能は、計画どおりに非推奨されることはありませんでした。確かに、CSSとJavaScriptは負荷を運ぶことができる以上のものですが、以前のようにSmilが水中で死んでいないことを知っておくのは良いことです

イェーイ、テキストワラップのジャンプを見てみましょう:サファリテクノロジーのプレビューにかなり着陸してください!しかし、それがChromiumブラウザーでの仕組みとは異なることに注意してください。

このCSS-Tricksアップデートは、アルマナック、最近のポッドキャスト出演、新しいCSSカウンターガイド、および貴重なコンテンツを提供するいくつかの新しい著者の追加の大幅な進歩を強調しています。

ほとんどの場合、人々はTailwind&#039;の@Apply機能を紹介します。このように展示されたとき、@Applyはまったく有望な音をしません。だからobvio

馬鹿のように展開することは、展開に使用するツールと複雑さの報酬と複雑さの減少との間の不一致になります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
