【Svelte】-(1)基础知识 / 快速上手 / 添加数据 / 动态属性 / CSS样式 / 嵌套组件 / HTML标签

本文是一篇Svelte框架的快速入门教程,介绍了如何集成Svelte到Vite项目中,使用VSCode插件,以及创建和交互组件的基本步骤。文章通过实例展示了添加数据、动态属性、CSS样式、嵌套组件和HTML标签的用法,帮助读者理解Svelte的语法和特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



基础知识

如果你是第一次接触Svelte,请阅读: 《相比Vue和React,Svelte可能更适合你》


快速上手

首先,你需要将 Svelte 与构建工具集成起来。官方提供了针对Rollup和webpack的插件:

  • rollup-plugin-svelte
  • svelte-loader

但是我更推荐使用Vite,Vite也集成了vite-plugin-svelte

如果你使用的是 VS Code,去VS Code的插件库下载 Svelte for VS Code 插件就好了。对于 JetBrains 系列去插件市场下载 Svelte 就可以了。

然后,一旦项目设置好了,使用 Svelte 组件就很容易了。编译器将每个组件转换为常规的 JavaScript 类,接下来只需导入它并用 new 实例化即可:

import App from './App.svelte';

const app = new App({
	target: document.body,
	props: {
		// we'll learn about props later
		answer: 42
	}
});

然后,如果需要,你可以使用组件 API与 app 进行交互。

创建项目

npm create vite@latest svelte-project

svelte-project 是文件夹名称,可以任意。

按照我的步骤来就好
在这里插入图片描述
我更喜欢TypeScript,按照你自己擅长的来就好了
在这里插入图片描述
OK ~
在这里插入图片描述



添加数据

打开刚刚新建的项目,修改 App.svelte 文件内容为:

<script>
  let user = {
    name: 'uiuing',
    from: '优快云'
  }
</script>

<a>Hi I'm {user.name}, from {user.from}</a>

运行

npm run vite

预览看看,你的端口可能和我的不一样。

在这里插入图片描述
在花括号内,我们可以放置任何我们想要的 JavaScript 内容。尝试更改 namename.toLocaleUpperCase()



动态属性

您可以使用花括号来控制元素属性,就像使用它们来控制文本一样。

<script>
  let user = {
    name: 'uiuing',
    from: '优快云',
  }
  let href = 'https://uiuing.blog.youkuaiyun.com'
</script>

<a {href} target="_blank" alt="uiuing home">
  Hi I'm {user.name}, from {user.from}
</a>

具有名称和值相同的属性并不少见,例如 href={href} 。 Svelte 为我们提供了这些情况的便捷简写,因此,<a {href} 等于 <a href={href}

在这里插入图片描述



CSS样式

就像在 HTML 中一样,您可以向 <style> 组件添加样式

<script>
  let user = {
    name: 'uiuing',
    from: '优快云'
  }
  let href = 'https://uiuing.blog.youkuaiyun.com'
</script>

<a {href} target="_blank">
  Hi I'm {user.name}, from {user.from}
</a>

<style>
  a {
    color: red;
  }
</style>

在这里插入图片描述

这里要注意,作用域仅是这个组件,并不会影响其他组件或者全局。



嵌套组件

将整个应用程序放在一个组件中是不切实际的。相反,我们可以从其他文件导入组件,然后像包含元素一样使用它们。

每个 .svelte 文件都是一个组件,该组件是一个可重用的自包含代码块,它封装了属于一起的 HTML、CSS 和 JavaScript。

新建一个 Follower.svelte 文件

在这里插入图片描述

<script>
  let isFollow = false
</script>

<button on:click={()=>isFollow=!isFollow}>
  {isFollow ? 'Unfollow' : 'Follow'}
</button>

然后到 App.svelte 里面使用

import Follower from './Follower.svelte'

另请注意,组件名称是大写的。这是是为了让我们能够区分用户定义的组件和常规 HTML 标记。



HTML标签

通常,字符串作为纯文本插入,这意味着字符像 <> 都没有特殊含义。

但有时我们需要将 HTML 直接渲染到组件中。

在 Svelte 中,可以使用特殊 {@html ...} 标签执行此操作:

修改 Follower.svelte

<script>
  let isFollow = false
</script>

<button on:click={()=>isFollow=!isFollow}>
  {@html isFollow ? 'Unfollow' : '<b>Follow</b>'}
</button>

在这里插入图片描述
在这里插入图片描述



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我想养只猫 •͓͡•ʔ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值