Slinkityの最初の観察
Slinkityは、あなたの静的な11 tyのサイトに動的な、クライアント側の相互作用をもたらすためにVITEを使用するフレームワークです.これは、ツイートで発表された上でアルファ版としてリリースAugust 8, 2021 . 既存旋削可能
Slinkityを使用すると、次のようなショートコードを持つページにコンポーネントを挿入できます. ジキルとヒューゴのようなデータとテンプレート言語によって駆動されたリーンなJavaScriptのない静的サイトジェネレータ. ダイナミックな、JavaScript重いウェブアプリはデータによって供給されて、NextJsとNuxtjsのようなVue成分または反応します. Slikityは初期のAlphaで、生産用途に推薦されません.あなたは問題やログのバグを報告することができますhere . このプロジェクトのコード例を見つけることができますon my GitHub .
新しいディレクトリを作ることによって
初期化する
設定ファイルを作成します.
使用する場合 Slinkityは、11ティーのBrowserSyncサーバーの代わりに独立したViteサーバーをスピンします. CLIは、However Configsをチェックし、入力や出力などのカスタムディレクトリを探します.見つければ、それらは適切な場所で見ることができるように、Viteサーバに渡されます.
2つのdevサーバを並列起動します テンプレートを構築し、ファイルの変更を監視する ブラウザのリソースバンドルとデバッグ用のViteサーバー VITEサーバは、出力ディレクトリを指すことによって起動します.そのディレクトリがまだ存在しない場合、VITEはディレクトリの書き込みを待ちます.
我々は、11ティープロジェクトをアップして実行している.我々は今、作成する
あなたのコンポーネントはディレクトリと呼ばれます
前のコンポーネントと同様に
コンポーネントページは、あなたの11 tyサイトの他のどのテンプレートのようです.テンプレートは、あなたの内容を定義するファイルです.例えば、ブログでは、これはあなたのブログ記事を含むMarkdownファイルでありえました.
我々が作成したいと言う
Slinkityはコンポーネントをラッピングする
あなたが11ティーに精通しているならば、あなたは前に前の問題でたぶん働いたでしょう.フロントは、コンポーネントベースのページでは同じように動作します.フロントの問題を他のテンプレートの「上流」から情報を渡す方法と考えることができます.
クリエイトア
含める
Slinkityプロジェクトは、NetLifyとVercelのような一般的なJamstackホスティングプロバイダのいずれかにホストすることができます.
クリエイトア
走る
あなたがいるならばGitHub CLI インストールすると、プロジェクトを初期化してGithubにプッシュするには、次のコマンドを使用できます.
また、custom domain name .
.html
or .liquid
ファイル.jsx
ファイル.Slinkityを使用すると、次のようなショートコードを持つページにコンポーネントを挿入できます.
{% react './path/to/Hello.jsx' %}
. コンポーネント駆動ページはクライアントで水和されているので、動的状態管理は開発と生産の両方で機能します.現在のWeb開発コミュニティで2つの競合するキャンプを統合することを目指します.プロジェクトの作成
新しいディレクトリを作ることによって
index.md
ヘッダーとファイルを含むファイル.gitignore
ファイル.mkdir -p ajcwebdev-slinkity/src
cd ajcwebdev-slinkity
echo '# ajcwebdev-slinkity' > src/index.md
echo 'node_modules\n_site\n.DS_Store' > .gitignore
依存性を追加する
初期化する
package.json
ファイル依存性を開発依存性としてインストールします.また、インストールする必要がありますreact
and react-dom
依存関係として.yarn init -y
yarn add -D slinkity @11ty/eleventy@beta
yarn add react react-dom
Slykityは11 tyに依存するlatest 1.0 beta build 正しく動作するように.です。js
設定ファイルを作成します.
touch .eleventy.js
入力ディレクトリをsrc
.// .eleventy.js
module.exports = function (eleventyConfig) {
return {
dir: {
input: 'src',
},
}
}
開発サーバ
npx slinkity --serve
スタートa Vite server あなたの11 tyのビルドを指します.npx slinkity --serve
The --incremental
開発中にビルドを高速化するためにフラグを使用できます.Viteは、SASSと反応を含むファイルタイプの範囲を処理することを可能にします.[Browsersync] Access URLs:
-----------------------------------
Local: http://localhost:8080
External: http://192.168.1.242:8080
-----------------------------------
[Browsersync] Serving files from: _site
[11ty] Writing _site/index.html from ./src/index.md (liquid)
[11ty] Copied 1 file / Wrote 1 file in 0.11 seconds (v1.0.0-beta.2)
[11ty] Watching…
オープンlocalhost:8080 あなたのサイトを表示するには.使用する場合
slinkity
コマンドを実行すると、eleventy
CLI以外serve
and port
:serve
スタート11ty dev server in --watch
mode ファイルの変更をリッスンする.port
私たち自身のサーバーのためにピックアップされ、Viteに渡される必要があります.2つのdevサーバを並列起動します
2コンポーネントを追加する
我々は、11ティープロジェクトをアップして実行している.我々は今、作成する
jsx
コンポーネントと私たちのインデックスページにショートコードを含める.こんにちは。日本学術振興会
あなたのコンポーネントはディレクトリと呼ばれます
components
インサイド11 ty _includes
ディレクトリ.mkdir -p src/_includes/components
touch src/_includes/components/Hello.jsx
これはすべてのインポートされたコンポーネントが住んでいる場所です.Slinkityは常に_includes/components/
VITEのためのビルドにピックアップします.あなたがここの外でどこでもあなたの構成要素を置くならば、Viteは彼らを見つけることができません!// src/_includes/components/Hello.jsx
import React from "react"
const Hello = () => {
return (
<>
<span>The quality or condition of a slinky</span>
</>
)
}
export default Hello
このコンポーネントは、span
タグ.とreact
shortcode , コンポーネントを任意の静的テンプレートに挿入できます.含めるreact
ショートコードindex.md
この場合、コンポーネントへのパスを渡しますcomponents/Hello
.# ajcwebdev-slinkity
{% react 'components/Hello' %}
_includes
and .jsx
は省略可能です.カウンター.日本学術振興会
前のコンポーネントと同様に
_includes/components
なので、このディレクトリをあなたのビルドにコピーできます.touch src/_includes/components/Counter.jsx
新しい状態変数宣言count
.// src/_includes/components/Counter.jsx
import React, { useState } from 'react'
function Counter() {
const [count, setCount] = useState(0)
return (
<div>
<p>You've had {count} glasses of water 💧</p>
<button onClick={() => setCount(count + 1)}>
Add one
</button>
</div>
)
}
export default Counter
前のもののようなショートコードでコンポーネントを含めます.# ajcwebdev-slinkity
{% react 'components/Hello' %}
{% react 'components/Counter' %}
これは_includes/component/Counter.jsx
, 静的にコンポーネントをレンダリングし、HTMLとして挿入し、JavaScriptコンポーネントでレンダリングされたHTMLを水和します.コンポーネントページの作成
コンポーネントページは、あなたの11 tyサイトの他のどのテンプレートのようです.テンプレートは、あなたの内容を定義するファイルです.例えば、ブログでは、これはあなたのブログ記事を含むMarkdownファイルでありえました.
アバウト.日本学術振興会
我々が作成したいと言う
/about
インタラクティブなイメージカルーセルとページ.私たちはabout.jsx
我々のサイトの他のページと並んでファイルしてください.touch src/about.jsx
エラーメッセージが表示されますabout.jsx
何もエクスポートしません.次を追加します.// src/about.jsx
import React from 'react'
function About() {
return (
<h2>This page tells you stuff about things!</h2>
)
}
export default About
オープン/about/
ページを表示するにはその末尾のスラッシュを含める必要があります/
Viteサーバーのページを見つける.これは、我々のJS束が生きているからです/about
, vite開発サーバを起動する.レイアウト
Slinkityはコンポーネントをラッピングする
html
and body
タグを自動的に.ただし、メタデータや余分なラッパー要素を含める場合は、レイアウトテンプレートを作成するのに便利です.レイアウト連鎖についてもっと学ぶことができますhere .正面適用
あなたが11ティーに精通しているならば、あなたは前に前の問題でたぶん働いたでしょう.フロントは、コンポーネントベースのページでは同じように動作します.フロントの問題を他のテンプレートの「上流」から情報を渡す方法と考えることができます.
// src/about.jsx
import React from 'react'
export const frontMatter = {
title: 'About me'
}
function About() {
return (
<h2>This page tells you stuff about things!</h2>
)
}
export default About
このtitle
キーは、現在のレイアウトのテンプレートからアクセスすることができます私たちのページに適用されます.参照11ty's front matter documentation データカスケードがこれにどのように適合するかについて.レイアウト.HTML
クリエイトア
layout.html
下_includes
ディレクトリtouch src/_includes/layout.html
生息するlayout.html
内容で.<!-- src/_includes/layout.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }}</title>
</head>
<body>
{{ content }}
</body>
</html>
{{ title }}
我々のページの前の問題から「タイトル」属性を使います{{ content }}
コンポーネントのページをレンダリングするfrontMatter
インabout.jsx
レイアウトを配線する.// src/about.jsx
import React from 'react'
export const frontMatter = {
title: 'About me',
layout: 'layout.html',
}
function About() {
return (
<h2>This page tells you stuff about things!</h2>
)
}
export default About
あなたのサイトをNetlifyに配備する
Slinkityプロジェクトは、NetLifyとVercelのような一般的なJamstackホスティングプロバイダのいずれかにホストすることができます.
ネットリファイ。トムール
クリエイトア
netlify.toml
ファイル.touch netlify.toml
含めるnpx slinkity
ビルドコマンドと_site
を返します.[build]
command = "npx slinkity"
publish = "_site"
国立天文台
走る
npx slinkity
生産ビルドを作成します.あなたの新しいサイトは_site
フォルダwherever you tell 11ty to build your site . プロダクションビルドでは、まず最初に一時的なディレクトリにすべてのルートをビルドし、この一時ディレクトリから意図した出力をビルドするために、すべてのリソースバンドル、minalization、および最終最適化を拾い上げます.クリエイトジョ
あなたがいるならばGitHub CLI インストールすると、プロジェクトを初期化してGithubにプッシュするには、次のコマンドを使用できます.
git init
git add .
git commit -m "a slinky is a precompressed helical spring toy"
gh repo create ajcwebdev-slinkity
git push -u origin main
代わりに、空白のgithubリポジトリを作成することができますrepo.new を押す前にリモートを追加します.あなたのrepoをnetlifyに接続してください
また、custom domain name .
Reference
この問題について(Slinkityの最初の観察), 我々は、より多くの情報をここで見つけました https://dev.to/ajcwebdev/a-first-look-at-slinkity-3igテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol