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

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

基础知识


如果你是第一次接触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 是文件夹名称,可以任意。


按照我的步骤来就好

7.png

我更喜欢TypeScript,按照你自己擅长的来就好了

8.png

OK ~


9.png

添加数据


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

<script>
  let user = {
    name: 'uiuing',
    from: 'CSDN'
  }
</script>
<a>Hi I'm {user.name}, from {user.from}</a>

运行


npm run vite

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


10.png

在花括号内,我们可以放置任何我们想要的 JavaScript 内容。尝试更改 name 为 name.toLocaleUpperCase() 。



动态属性


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

<script>
  let user = {
    name: 'uiuing',
    from: 'CSDN',
  }
  let href = 'https://uiuing.blog.csdn.net'
</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}


11.png


CSS样式


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

<script>
  let user = {
    name: 'uiuing',
    from: 'CSDN'
  }
  let href = 'https://uiuing.blog.csdn.net'
</script>
<a {href} target="_blank">
  Hi I'm {user.name}, from {user.from}
</a>
<style>
  a {
    color: red;
  }
</style>

12.png

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


嵌套组件


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


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


新建一个 Follower.svelte 文件

13.png

<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>

14.png15.png

目录
相关文章
|
7月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
transition过渡属性 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成。 但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化, 让效果显得更加细腻。简单点说,就是通过鼠标经过、获得焦点,被点击或对元素任何改变中触发, 并平滑地以动画效果改变CSS的属性值。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 在默认样式中声明元素的初始状态样式; 声明过渡元素最终状态样式,比如悬浮状态; 在默认样式中通过添加
363 1
|
7月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
350 0
|
7月前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
238 1
|
7月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
636 0
|
7月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
继承 我们的CSS中很多的属性也是可以继承的,其中相当一部分是跟文字的相关的,比如说颜色、字体、字号。 当然还有一部分是不能继承的。 例如边框、内外边距。 层叠 层叠是CSS的核心机制。 层叠的工作机制: 当元素的同一个样式属性有多种样式值的时候,CSS就是靠层叠机制来决定最终应用哪种样式。 层叠规则: 层叠规则一:找到应用给每个元素和属性的声明。 说明:浏览器在加载每个页面时,都会据此查找到每条CSS规则, 并标识出所有受到影响的HTML元素。
250 0
|
移动开发 JavaScript 前端开发
HTML5 表单属性7
`pattern` 属性使用正则表达式验证 `&lt;input&gt;` 元素的值,适用于 `text`, `search`, `url`, `tel`, `email`, 和 `password` 类型。
|
移动开发 UED HTML5
HTML5 表单属性6
`min`、`max` 和 `step` 属性用于限制 `&lt;input&gt;` 标签中的数值或日期范围。例如,可以设置日期选择器的最早和最晚日期,或限制数字输入框的值范围。`multiple` 属性允许在 `&lt;input&gt;` 中选择多个值,适用于邮箱和文件类型。这些属性增强了表单控件的功能性和用户体验。
|
移动开发 HTML5
HTML5 表单属性4
`formnovalidate` 属性是一个布尔属性,用于 `&lt;input&gt;` 元素,指示该输入在表单提交时不需验证,可覆盖 `&lt;form&gt;` 元素的 `novalidate` 属性,常与 `type=&quot;submit&quot;` 一起使用。示例中展示了如何通过两个提交按钮(一个使用验证,另一个不使用)实现不同的表单提交方式。
|
移动开发 HTML5
HTML5 表单属性5
`height` 和 `width` 属性用于 `&lt;input&gt;` 标签中的 `image` 类型,定义图像的高度和宽度。
|
移动开发 数据安全/隐私保护 HTML5
HTML5 表单属性8
`required`属性确保表单提交前输入框不能为空,适用于多种类型的 `&lt;input&gt;` 标签,如文本、邮箱、密码等。`step`属性则用于指定输入域中合法数值的间隔,常与`max`和`min`属性配合使用,适用于数字、日期等类型。例如,设置`&lt;input type=&quot;number&quot; step=&quot;3&quot;&gt;`可使输入值以3为单位递增或递减。