ブログフレームワークの作成-svelte&materialui
24929 ワード
今からフレームワークをもっと丁寧に作りましょう.
https://sveltematerialui.com/の画面枠と同じだと思います.
最終的にはmaterialuiが提供するコンポーネントの中で適切なものを見つけて使用しなければならないが、そのサイトを見ると、ヘッダは https://sveltematerialui.com/demo/top-app-bar https://sveltematerialui.com/demo/drawer
タイトルを widthによってdisplayを調整するのは移動を考慮するのです...ここは後で修理しましょう.
参照スタイルを
ex)
カスタムコンポーネントではなく、実際のhtmlタグ-divやspanなどの-を使用すれば、スムーズに構築できます.
うん.まだsvelteが足りないかもしれません...あるいはsvelte哲学のあのような...
今すぐこのような事実を覚えておきましょう.
ちょうどモダリティバージョンは私が思ったのと同じです.△実は、modalバージョンを見てフレームワークを思いついたのです. コードで注目すべき点は、
その他の構成部品の詳細仕様...そしてその時になってから知りましょう
まだまだ足りない点はたくさんありますが、まずはフレームワークを作っておきました…フレーム全体をここまでにして、Admin画面を作成します.
まずここに現れた画面は以下の通りです.
https://sveltematerialui.com/の画面枠と同じだと思います.
最終的にはmaterialuiが提供するコンポーネントの中で適切なものを見つけて使用しなければならないが、そのサイトを見ると、ヘッダは
TopAppBar
、主にDrawers
を使用していることが分かった.TopAppBar
Drawers
TopAppBar
タイトルを
TopAppBar
の静的モードに設定します.私はただそのサイトが提供したコードを持ってきて少し修正しただけです.Header.svelete
<TopAppBar variant="static">
<Row>
<Section>
<IconButton class="material-icons blog-header-menu" on:click={ onClick }>menu</IconButton>
<Title>DJ's Blog Header</Title>
</Section>
<Section align="end" toolbar>
<IconButton href="https://github.com/crazydj2/blog-frontend" target="_blank"><Github /></IconButton>
</Section>
</Row>
</TopAppBar>
<script>
import TopAppBar, { Row, Section, Title } from '@smui/top-app-bar';
import IconButton from '@smui/icon-button';
import Github from "svelte-material-icons/Github.svelte";
const onClick = () => {
alert('click......');
};
</script>
<style>
:global(.blog-header-menu) {
display: none;
}
@media (max-width: 480px) {
:global(.blog-header-menu) {
display: flex;
}
}
</style>
参照スタイルを
:global
に設定したのは、バージョンエラーが発生するためです.ex)
<Row class="ttt"></Row>
<style>
.ttt {}
</style>
カスタムコンポーネントではなく、実際のhtmlタグ-divやspanなどの-を使用すれば、スムーズに構築できます.
うん.まだsvelteが足りないかもしれません...あるいはsvelte哲学のあのような...
今すぐこのような事実を覚えておきましょう.
Drawers
Drawers
を使用してメインフレームを作成します.ちょうどモダリティバージョンは私が思ったのと同じです.△実は、modalバージョンを見てフレームワークを思いついたのです.
TopAppBar
と同様に、コード修正を経て私のバージョンに合致します.Main.svelte
<div class="blog-drawer-container">
<Aside bind:open={open}></Aside>
<AppContent class="app-content">
<main class="main-content">
<Router {routes} />
</main>
</AppContent>
</div>
<script>
import Router from 'svelte-spa-router';
import routes from '../routes/routes';
import { AppContent } from '@smui/drawer';
import Aside from './main/Aside.svelte';
let open = false;
</script>
<style>
/* These classes are only needed because the
drawer is in a container on the page. */
.blog-drawer-container {
position: relative;
display: flex;
height: 100%;
overflow: hidden;
z-index: 0;
}
:global(.app-content) {
flex: auto;
overflow: auto;
position: relative;
flex-grow: 1;
}
.main-content {
overflow: auto;
padding: 16px;
height: 100%;
box-sizing: border-box;
}
</style>
Aside.svelte
<!-- Don't include fixed={false} if this is a page wide drawer.
It adds a style for absolute positioning. -->
<Drawer variant="static" fixed={false} bind:open>
<Header>
<Title>Super Mail</Title>
<Subtitle>It's the best fake mail app drawer.</Subtitle>
</Header>
<Content>
<List>
<Item href="javascript:void(0)" on:click={() => setActive('keyboard_arrow_right')} activated={active === 'keyboard_arrow_right'} >
<Graphic class="material-icons" aria-hidden="true">keyboard_arrow_right</Graphic>
<Text>keyboard_arrow_right</Text>
</Item>
<Separator />
<Item href="javascript:void(0)" on:click={() => setActive('keyboard_arrow_down')} activated={active === 'keyboard_arrow_down'} >
<Graphic class="material-icons" aria-hidden="true">keyboard_arrow_down</Graphic>
<Text>keyboard_arrow_down</Text>
</Item>
<Separator />
</List>
</Content>
</Drawer>
<!-- Don't include fixed={false} if this is a page wide drawer.
It adds a style for absolute positioning. -->
<Scrim fixed={false} />
<script>
import Drawer, { Content, Header, Title, Subtitle, Scrim } from '@smui/drawer';
import List, { Item, Text, Graphic, Separator } from '@smui/list';
export let open;
let active = 'keyboard_arrow_right';
const setActive = value => {
active = value;
open = false;
};
</script>
bind:value={value}
構文を使用して親コンポーネントとサブコンポーネントの間でデータバインドを実現することです.その他の構成部品の詳細仕様...そしてその時になってから知りましょう
まだまだ足りない点はたくさんありますが、まずはフレームワークを作っておきました…フレーム全体をここまでにして、Admin画面を作成します.
まずここに現れた画面は以下の通りです.
Reference
この問題について(ブログフレームワークの作成-svelte&materialui), 我々は、より多くの情報をここで見つけました https://velog.io/@crazydj/블로그-직접-만들기-대작전-블로그-틀-만들기-svelte-material-uiテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol