目录
>常见问题(常见问题解答)有关使用Svelte
>使用Svelte构建新闻应用程序的关键好处是什么?
>如何使我的Svelte News应用程序响应?
>
首页 web前端 js教程 Svelte App项目:构建每日星球的新闻应用程序UI

Svelte App项目:构建每日星球的新闻应用程序UI

Feb 14, 2025 am 10:17 AM

Svelte App项目:构建每日星球的新闻应用程序UI

Svelte是一个新的JavaScript UI库,在许多方面与React等现代UI库相似。一个重要的区别是,它不使用虚拟DOM的概念。 在本教程中,我们将通过构建灵感来自《超人世界》的虚构报纸的启发来介绍Svelte。

钥匙要点

Svelte是一个新的JavaScript UI库,不使用虚拟DOM,使其比React,Vue和Angular等最强大的框架更快。在构建应用程序时,它将必要的工作转移到开发机上的编译时间阶段。 该教程提供了一个逐步指南,以构建灵感来自《每日星球》的新闻申请,这是来自超人世界的虚构报纸。这包括初始化一个Svelte项目,运行本地开发服务器并构建最终捆绑包。

>教程还涵盖了DEGIT工具来生成Svelte项目,从新闻端点获取数据并为应用程序创建UI。

开发应用程序后,可以通过在终端中运行构建命令并使用ZEIT托管应用程序,即现在是网站和无服务器功能的云平台。

    关于Svelte
  • Svelte使用一种新方法来构建用户界面。 Suvte不用在浏览器中进行必要的工作,而是将其起作用的合理时间阶段转移到开发机器上时发生的编译时阶段。
  • > 简而言之,这就是Svelte的工作原理(如官方博客中所述):
  • Svelte在
  • >构建时间
  • 上运行,将组件转换为高效
  • 命令
  • 代码,该代码可以手术更新DOM。结果,您可以编写具有出色性能特征的雄心勃勃的应用程序。
>我们将学习诸如Svelte组件之类的基本概念以及如何在数据阵列上获取和迭代。我们还将学习如何初始化一个Svelte项目,运行本地开发服务器并构建最终的捆绑包。 >先决条件

您需要有一些先决条件,因此您可以舒适地遵循此教程,例如:

熟悉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组件的属性。在这种情况下,它只是一个名称,带有

> world
<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>
登录后复制
登录后复制
value。

>

>打开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
登录后复制
登录后复制
由于fetch()方法返回JavaScript承诺,因此我们可以使用异步/等待语法使代码看起来同步并消除回调。

接下来,让我们添加以下HTML标记以创建我们的应用程序的UI并显示新闻数据:>

>我们使用每个块来循环到新闻文章,并显示每篇文章的标题,描述,URL和URL图像。

<span>cd dailyplanetnews
</span><span>npm run dev
</span>
登录后复制
登录后复制
>每日星球徽标和标题是从这个受DC Comics启发的非营利性新闻机构借来的。

我们将使用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>
登录后复制
登录后复制
用于生产的建筑物

开发应用程序后,您可以通过在终端中运行构建命令来创建生产捆绑包:

Svelte App项目:构建每日星球的新闻应用程序UI

该命令将产生一个缩小且可生产的捆绑包,您可以在首选的托管服务器上托管。

>现在让我们立即使用Zeit托管应用程序。

> 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>
登录后复制
返回您的终端,然后运行以下命令以立即安装CLI:>

接下来,导航到public文件夹并运行现在的命令:>

就是这样!您的应用程序将部署到云中。在我们的情况下,可以从public-kyqab3g5j.now.sh。

您可以从此GitHub存储库中找到此应用程序的源代码。结论 在本教程中,我们使用Svelte构建了一个简单的新闻应用程序。我们还看到了什么是Svelte,以及如何使用NPM的DEGIT工具来创建一个Svelte项目。

>您可以参考官方文档以获取详细的教程,以了解每个Svelte功能。

>常见问题(常见问题解答)有关使用Svelte

构建新闻应用程序的问题(常见问题解答)

>使用Svelte构建新闻应用程序的关键好处是什么?

svelte是现代的JavaScript编译器,它允许您编写易于理解的JavaScript代码,然后将其编译为高效的命令式代码直接操纵DOM。构建新闻应用程序时,Svelte提供了一些好处。首先,它提供了一个更简单,更清洁的代码,使开发人员更容易理解和维护代码。其次,Svelte应用程序具有很高的性能。由于Svelte在构建时间运行,因此将应用程序组件转换为更新DOM的高效命令代码。这导致加载时间更快,用户体验更顺畅。最后,像React和Vue一样,Svelte是基于组件的,这使得构建复杂的用户界面变得更加容易。

>如何将新文章添加到使用Svelte构建的新闻应用程序? >在您的Svelte新闻应用程序中添加新文章涉及为文章创建一个新组件,然后将其导入相关的父组件。在新组件中,您可以定义文章的内容和任何相关的元数据,例如作者和发布日期。创建组件后,您可以使用导入语句将其导入到父组件中。然后,您可以将其添加到父母组件的渲染方法中。 Svelte新闻应用程序涉及创建搜索组件并添加状态管理以跟踪搜索输入。您可以使用Svelte的内置反应性功能来根据搜索输入来更新显示的文章。当搜索输入更改时,您可以过滤文章列表,以包括匹配搜索输入的文章列表。

我如何在我的Svelte应用程序中对新闻文章进行分类?可以通过在每个文章中添加类别属性来实现Svelte应用程序。然后可以使用此属性根据所选类别过滤文章。您可以创建一个显示类别列表的类别组件。当选择类别时,您可以将显示的文章更新为仅包含所选类别中的文章。

>如何将用户身份验证添加到我的Svelte News应用程序?

> Svelte新闻应用程序可以使用各种方法进行,例如使用Firebase Authentication服务或JWT(JSON Web令牌)的后端服务器。您需要创建一个身份验证组件,用户可以在其中输入其登录凭据。表单提交后,这些凭据将发送到身份验证服务或后端服务器进行验证。如果凭据有效,则对用户进行身份验证并授予对应用程序的访问

>如何使我的Svelte News应用程序响应?

>制作Svelte News应用程序响应式响应涉及使用CSS媒体查询根据屏幕尺寸调整应用程序的布局。 Svelte允许您在与JavaScript和HTML代码相同的文件中编写CSS代码,从而更容易设置组件。您可以为不同的屏幕尺寸定义不同样式的样式,以确保您的应用在所有设备上看起来都不错。

如何在我的Svelte News应用程序中添加推送通知?

>向Svelte News添加推送通知可以使用诸如Firebase Cloud Messaging之类的服务完成应用。您需要在服务上注册您的应用程序,然后将必要的代码添加到您的应用程序中以处理接收推送通知。这通常涉及将服务工作者添加到您的应用程序中,该应用程序会在收到一个时听取推送事件并显示通知。

>

>如何将评论部分添加到我的Svelte News App? Svelte新闻应用程序的评论部分涉及创建评论组件并添加状态管理以跟踪评论。您可以使用Svelte的内置反应性功能来根据用户输入来更新评论。当用户提交注释时,您可以将其添加到注释列表中并更新显示的注释。

>

>如何优化Svelte News应用程序的性能?一个苗条的新闻应用程序可能涉及多种策略。首先,您可以使用Svelte的内置工具进行代码分配和懒惰加载,仅加载当前视图所需的代码。其次,您可以优化图像和其他静态资产以减少其文件大小。最后,您可以使用服务工作者来缓存您的应用程序资产并将其从缓存中提供服务,从而减少了加载时间。

>

>如何部署我的Svelte News App?

可以使用各种方法来完成应用程序,例如使用Netlify或Vercel(例如Netlify或Vercel)的静态站点托管服务,或者使用Google Cloud或AWS等云平台。您需要使用NPM Run Build Command构建应用程序,该命令使用您的编译应用程序创建一个公共文件夹。然后可以将此文件夹上传到您的托管服务或云平台。

>

以上是Svelte App项目:构建每日星球的新闻应用程序UI的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1652
14
CakePHP 教程
1413
52
Laravel 教程
1304
25
PHP教程
1251
29
C# 教程
1224
24
前端热敏纸小票打印遇到乱码问题怎么办? 前端热敏纸小票打印遇到乱码问题怎么办? Apr 04, 2025 pm 02:42 PM

前端热敏纸小票打印的常见问题与解决方案在前端开发中,小票打印是一个常见的需求。然而,很多开发者在实...

神秘的JavaScript:它的作用以及为什么重要 神秘的JavaScript:它的作用以及为什么重要 Apr 09, 2025 am 12:07 AM

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

谁得到更多的Python或JavaScript? 谁得到更多的Python或JavaScript? Apr 04, 2025 am 12:09 AM

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

如何实现视差滚动和元素动画效果,像资生堂官网那样?
或者:
怎样才能像资生堂官网一样,实现页面滚动伴随的动画效果? 如何实现视差滚动和元素动画效果,像资生堂官网那样? 或者: 怎样才能像资生堂官网一样,实现页面滚动伴随的动画效果? Apr 04, 2025 pm 05:36 PM

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript难以学习吗? JavaScript难以学习吗? Apr 03, 2025 am 12:20 AM

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

JavaScript的演变:当前的趋势和未来前景 JavaScript的演变:当前的趋势和未来前景 Apr 10, 2025 am 09:33 AM

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

如何使用JavaScript将具有相同ID的数组元素合并到一个对象中? 如何使用JavaScript将具有相同ID的数组元素合并到一个对象中? Apr 04, 2025 pm 05:09 PM

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

前端开发中如何实现类似 VSCode 的面板拖拽调整功能? 前端开发中如何实现类似 VSCode 的面板拖拽调整功能? Apr 04, 2025 pm 02:06 PM

探索前端中类似VSCode的面板拖拽调整功能的实现在前端开发中,如何实现类似于VSCode...

See all articles