钥匙要点
Svelte是一个新的JavaScript UI库,不使用虚拟DOM,使其比React,Vue和Angular等最强大的框架更快。在构建应用程序时,它将必要的工作转移到开发机上的编译时间阶段。
您需要有一些先决条件,因此您可以舒适地遵循此教程,例如:
熟悉HTML,CSS和JavaScript(ES6)> node.js和npm安装在您的开发机上。
可以从官方网站上轻松安装node.js,也可以使用NVM轻松安装和管理系统中的节点的多个版本。 > >我们将使用JSON API作为我们应用的新闻来源,因此您需要通过免费创建一个帐户并注意您的API密钥来获取API密钥。
入门> >现在,让我们通过使用DEGIT工具生成Svelte Projects来构建我们的每日星球新闻应用程序。
>您可以在系统上全球安装DEGIT,也可以使用NPX工具从NPM执行它。打开一个新终端并运行以下命令:
接下来,在项目的文件夹中导航,并使用以下命令运行开发服务器:
> npx degit sveltejs/template dailyplanetnews登录后复制登录后复制>您的开发服务器将从http:// localhost:5000地址从聆听。如果您进行任何更改,它们将被重建并实时加载到您的运行应用中。
>打开项目的main.js文件,您应该找到以下代码:> <span>cd dailyplanetnews </span><span>npm run dev </span>登录后复制登录后复制这是通过创建和导出root组件的实例(通常称为应用程序)来引导Svelte应用程序的地方。该组件采用带有目标和props属性的对象。
>目标包含将安装组件的DOM元素,并且Props包含要传递给App组件的属性。在这种情况下,它只是一个名称,带有
> worldvalue。<span>import <span>App</span> from './App.svelte'; </span> <span>const app = new App({ </span> <span>target: document.body, </span> <span>props: { </span> <span>name: 'world' </span> <span>} </span><span>}); </span> <span>export default app; </span>登录后复制登录后复制>
>打开app.svelte文件,您应该找到以下代码:> 这是我们应用程序的根组成部分。所有其他组件将是App的孩子。
> Svelte中的组件使用.svelte扩展名的源文件,其中包含组件的所有JavaScript,样式和标记。>导出名称;语法创建一个称为名称的组件道具。我们使用变量插值 - {...} - 通过名称prop。
显示传递的值<span><span><span><script</span>></span><span> </span></span><span><span> <span>export let name; </span></span></span><span><span></span><span><span></script</span>></span> </span> <span><span><span><style</span>></span><span> </span></span><span><span> <span>h1 { </span></span></span><span><span> <span>color: purple; </span></span></span><span><span> <span>} </span></span></span><span><span></span><span><span></style</span>></span> </span> <span><span><span><h1</span>></span>Hello {name}!<span><span></h1</span>></span> </span>登录后复制登录后复制>您可以简单地使用熟悉的普通旧JavaScript,CSS和HTML来创建Svelte组件。 Svelte还向HTML添加了一些模板语法,以进行可变的插值和通过数据列表等循环。
由于这是一个小应用程序,我们可以简单地在应用程序组件中实现所需的功能。>在<script>标签中,从“ svelte”中导入onmount()方法,并定义api_key,文章和URL变量,这些变量将保存新闻API密钥,获取的新闻文章和提供数据的端点:</script>
> onMount是一种生命周期方法。这是官方教程对此所说的:
每个组件都有一个
>生命周期在创建并在被破坏时结束时开始。有少数功能使您可以在该生命周期期间的关键时刻运行代码。您最常使用的是OnMount,该元件首先渲染到DOM。
接下来,让我们使用fetch API从新闻端点获取数据,并在将组件安装在DOM中时将文章存储在文章变量中:
npx degit sveltejs/template dailyplanetnews
接下来,让我们添加以下HTML标记以创建我们的应用程序的UI并显示新闻数据:
>我们使用每个块来循环到新闻文章,并显示每篇文章的标题,描述,URL和URL图像。
<span>cd dailyplanetnews </span><span>npm run dev </span>
我们将使用Google字体可提供的手写字体Kalam,因此请打开public/index.html文件,并添加以下标签:
接下来,返回到app.svelte文件并添加以下样式:
这是我们每日新闻应用程序的屏幕截图:
<span>import <span>App</span> from './App.svelte'; </span> <span>const app = new App({ </span> <span>target: document.body, </span> <span>props: { </span> <span>name: 'world' </span> <span>} </span><span>}); </span> <span>export default app; </span>
<span><span><span><script</span>></span><span> </span></span><span><span> <span>export let name; </span></span></span><span><span></span><span><span></script</span>></span> </span> <span><span><span><style</span>></span><span> </span></span><span><span> <span>h1 { </span></span></span><span><span> <span>color: purple; </span></span></span><span><span> <span>} </span></span></span><span><span></span><span><span></style</span>></span> </span> <span><span><span><h1</span>></span>Hello {name}!<span><span></h1</span>></span> </span>
开发应用程序后,您可以通过在终端中运行构建命令来创建生产捆绑包:
> zeit现在是一个用于网站和无服务器功能的云平台,您可以用来将项目部署到.now.sh或个人域。
<span><script> </span> <span>export let name; </span> <span>import <span>{ onMount }</span> from "svelte"; </span> <span>const API_KEY = "<YOUR_API_KEY_HERE>"; </span> <span>const URL = <span>`https://newsapi.org/v2/everything?q=comics&sortBy=publishedAt&apiKey=<span>${API_KEY}</span>`</span>; </span> <span>let articles = []; </span> <span></script> </span>
接下来,导航到public文件夹并运行现在的命令:
就是这样!您的应用程序将部署到云中。在我们的情况下,可以从public-kyqab3g5j.now.sh。
您可以从此GitHub存储库中找到此应用程序的源代码。>您可以参考官方文档以获取详细的教程,以了解每个Svelte功能。
> Svelte新闻应用程序可以使用各种方法进行,例如使用Firebase Authentication服务或JWT(JSON Web令牌)的后端服务器。您需要创建一个身份验证组件,用户可以在其中输入其登录凭据。表单提交后,这些凭据将发送到身份验证服务或后端服务器进行验证。如果凭据有效,则对用户进行身份验证并授予对应用程序的访问
>制作Svelte News应用程序响应式响应涉及使用CSS媒体查询根据屏幕尺寸调整应用程序的布局。 Svelte允许您在与JavaScript和HTML代码相同的文件中编写CSS代码,从而更容易设置组件。您可以为不同的屏幕尺寸定义不同样式的样式,以确保您的应用在所有设备上看起来都不错。
>
>如何将评论部分添加到我的Svelte News App? Svelte新闻应用程序的评论部分涉及创建评论组件并添加状态管理以跟踪评论。您可以使用Svelte的内置反应性功能来根据用户输入来更新评论。当用户提交注释时,您可以将其添加到注释列表中并更新显示的注释。>
>如何部署我的Svelte News App?>
以上是Svelte App项目:构建每日星球的新闻应用程序UI的详细内容。更多信息请关注PHP中文网其他相关文章!