Svelte Material UI。高级材料设计组件

1,007 阅读6分钟

在过去的几年里,最主要的JavaScript框架和库包括React、Angular和Vue;然而,自2016年11月发布以来,Svelte越来越受欢迎。
因其反应性而闻名,Svelte是构建高速Web应用程序的强大工具,通过编译代码并将其转换为纯JavaScript来更新DOM。

在本教程中,我们将探讨Svelte Material UI(SMUI),这是一个用于构建自定义和高级UI组件的辅助库,其灵感来自谷歌的Material Design。要跟上本教程,你需要。

  • 熟悉HTML、CSS和JavaScript
  • 一个代码编辑器,即Visual Studio Code
  • 在你的机器上安装Node.js

要跟上进度,你可以在我的GitHubrepo上访问源代码。让我们开始吧!

开始使用Svelte

要开始使用Svelte,首先,我们需要安装一个名为degit 的Svelte包,让我们能够克隆Svelte Material UIGitHubrepo的最新提交。我们将使用degit ,从Svelte的GitHubrepo中获取一个新应用程序的启动模板。在你的终端运行以下命令。

npm install -g degit

要创建一个新的应用程序,在你的应用程序目录的命令行中运行以下命令。请确保为你的项目添加一个独特的名字。

degit sveltejs/template your-project-name

接下来,CD ,进入新的文件目录并运行code . ,这将在VS Code中打开你的应用程序文件夹。

App Folder Visual Studio Code

我们从Sveltejs/template资源库中得到了上面截图中的文件。注意,Svelte应用程序的结构与其他JavaScript框架相似。

在你的应用程序目录的终端,运行下面的命令来安装所需的依赖项。

npm install

接下来,我们将得到Node模块和控制依赖性的package-lock.json 文件。要在浏览器上本地打开你的应用程序,在你的终端运行以下命令。

npm run dev

现在,你的Svelte应用程序应该在浏览器的本地服务器上打开,如下图所示。

New Svelte Application Open Browser

将Svelte Material UI添加到你的Svelte项目中

要在我们的Svelte项目中使用SMUI,首先,我们必须在终端运行以下命令来安装它。

npm install --save-dev svelte-mui

依赖关系将被安装在我们的package.json 文件中,该文件看起来像下面的图片。

Dependencies Installed Svelte Materialui Project

Svelte Material UI是一个轻量级的UI组件集合,我们可以很容易地将其导入我们的Svelte应用程序,包括UI元素的组件,如复选框、菜单、图标、浮动标签、表单字段和单选按钮。

举个例子,假设我们在Svelte应用程序中需要一个滑块组件。我们可以在我们的应用程序终端运行下面的命令。

npm install --save-dev @smui/slider

为了将滑块组件导入我们的应用程序,我们将在我们的script 标签中复制并粘贴下面的代码。

import {MDCSlider} from '@material/slider';

接下来,我们将用下面的代码在我们的HTML中调用一个连续的滑块。

<div class="mdc-slider">
<input class="mdc-slider__input" type="range" min="0" max="100" value="50" name="volume" aria-label="Continuous slider demo">
<div class="mdc-slider__track">
    <div class="mdc-slider__track--inactive"></div>
    div class="mdc-slider__track--active">
      <div class="mdc-slider__track--active_fill"></div>
    </div>
  </div>
  <div class="mdc-slider__thumb">
    <div class="mdc-slider__thumb-knob"></div>
  </div>
</div>

滑块将出现在我们的应用程序中,如下图所示。

Slider UI Element Display

用Svelte Material UI建立一个简单的待办事项列表

让我们使用Svelte Material UI的预制组件来建立一个简单的待办事项列表。

我们的应用程序将有一个添加新任务的按钮,用户可以用一个文本字段来定义这些任务。我们还将添加一个删除按钮,用于在事件完成后进行删除。为此,我们将从SMUI导入Add 按钮、Text 字段和Delete 按钮组件。

开始使用

首先,让我们在我们的src/components 文件夹中创建一个新的文件,称为Header.svelte ,它将包含我们应用程序的头的用户界面。

<script>

</script>
<style>
    .header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 15px 20px;
        color: #fff;`
        font-weight: bold;
        font-size: 1.5em;
        background: rgba(0, 0, 0, 0.1);
    }
</style>


<div class="header">
    <span>Onome's Todo list</span>
</div>

在你的App.svelte 文件中,运行下面的代码,在你的script 标签中导入该组件。

import Header from "./components/Header.svelte";

现在,在你的HTML中调用页眉,如下所示。

<Header />

导入Add 按钮

接下来,我们将从SMUI中导入Add 按钮,它为用户在待办事项列表中添加新任务创建了一个新的文本字段。要导入button 组件,首先,在你的终端运行以下命令。

npm install @material/button

用下面的代码在你的script 标签中导入button 组件。

import { Button } from 'svelte-mui/src';

现在,在你的script 标签中导入下面的代码,使Add 按钮能够作为文本字段添加新任务。

<script>
import { Button } from 'svelte-mui/src'
    let tasks = [];
    const addTasks = () => {
        tasks = [...tasks, '']
    }
</script>
<div>
<Button on:click={addTasks} raised color="#ff4d14">Add
    </Button>
</div>

如果你在你的终端运行npm run dev ,你的应用程序将看起来像下面的图片。

Add Button Display

导入Text 字段

要导入SMUI Text 字段组件,首先,在你的应用程序的终端运行以下命令。

npm install --save-dev @smui/textfield

现在,你可以用以下代码在你的应用程序中导入Text 字段组件。

import {MDCTextField} from '@material/textfield';

为了得到你的Text 字段,复制并粘贴下面的代码到你的HTML中。

<label class="mdc-text-field mdc-text-field--outlined">
                <span class="mdc-notched-outline">
                  <span class="mdc-notched-outline__leading"></span>
                  <span class="mdc-notched-outline__notch">
                        <span class="mdc-floating-label" id="my-label-id"></span>
                  </span>
                  <span class="mdc-notched-outline__trailing"></span>
                </span>
                <input type="text" class="mdc-text-field__input" aria-labelledby="my-label-id">
          </label>

导入Delete 按钮

最后,我们将创建一个Delete 按钮,它使用SMUIbutton 组件包裹的垃圾桶图标。当点击时,该按钮将使用slice() 功能从待办事项列表中删除一项任务。

首先,在你的终端运行下面的命令。

npm install @material/icon-button

现在,用下面的代码把图标和button 组件导入你的应用程序。

import {MDCRipple} from '@material/ripple';

让我们从Google Fonts Material Icons中获取垃圾桶的图标;首先,我们用下面的代码在我们的应用程序中导入Material Icons。

<head>
        <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
 </head>

要导入你选择的图标,只需在你的应用程序中添加其HTML代码。在这种情况下,我们使用删除图标。接下来,我们将为delete 按钮编写脚本,使其在点击事件被触发时删除任务。

<script>
    import { Button } from 'svelte-mui/src'
    let tasks = [];
    const removeTask = (index) => {
        tasks = [...tasks.slice(0, index), ...tasks.slice(index+1)];
     }
</script>
<div>
{#each tasks as task, index }
<Button on:click={()=>removeTask(index)} > <span class="material-icons" >
        delete
        </span> </Button>
{/each}
</div>

部署你的Svelte应用程序

你可以像部署其他网络应用一样部署你的Svelte应用。然而,在部署到Netlify或其他你选择的网站之前,你必须在终端运行npm run build 。我们最终的应用程序看起来像下面的图片。

Svelte Material UI To Do Application

你也可以在这里看到已部署的应用程序。

总结

作为一个相对较新的JavaScript前端编译器,Svelte仍然是一个正在进行的工作。然而,它已经证明了自己的有效性和易懂性,这部分要归功于第三方软件包和组件库。这篇文章展示了Svelte Material UI是如何利用Material UI组件的,为创建更快的应用程序提供了实用工具,使其拥有更有吸引力和易懂的用户界面。

如果你有任何问题,欢迎在下面评论

The postSvelte Material UI:高级材料设计组件出现在LogRocket博客上。