svelte教程(1)简介

简介: 什么是svelte?Svelte是用于构建快速Web应用程序的工具。它类似于React和Vue这样的JavaScript框架。但是有一个关键的区别:Svelte在构建时将您的svelte代码转换为理想的JavaScript 代码,而不是在运行时解释您的代码。

什么是svelte?

Svelte是用于构建快速Web应用程序的工具。

它类似于React和Vue这样的JavaScript框架。但是有一个关键的区别:Svelte在构建时将您的svelte代码转换为理想的JavaScript 代码,而不是在运行时解释您的代码。想要详细了解请查看svelte简介
注:本教程中使用了Sapper框架进行svelte程序的开发。学习语法环节不需要掌握sapper框架的使用,想要了解的话请查看sapper文档
本教程的所有代码均上传到github有需要的同学可以参考 https://github.com/sullay/svelte-learn

组件 components

在Svelte中,一个应用程序由一个或多个组件组成。组件是可重用的独立代码块,它封装在一起的HTML,CSS和JavaScript,并写入.svelte文件中。

添加数据

在组件中声明一个变量name并在html中进行引用。“{}”内可以使用任何JavaScript代码。

<script>
    let name = 'world';
</script>

<h1>Hello {name}!</h1>
<h1>Hello {name.toUpperCase()}!</h1>

如果变量名于属性名相同的情况下,可以简写例如src={src}。

<script>
    let name = 'world';
    let src ="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1570390818923&di=1b477739d17e14e5d8ee39b19cb40748&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F012e3b5954ee3da8012193a387c830.png%401280w_1l_2o_100sh.png"
</script>

<img {src} alt="Hello {name}!">

样式style

组件中可以使用

h1{
 text-align: center;
}

h1.svelte-17zljpa{
 text-align: center;
}

同时也给所有的标签添加一个相同的class属性。

<style>
h1{
    text-align: center;
}
img{
    width: 100%;
}
</style>

<script>
    let name = 'world';
    let src ="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1570390818923&di=1b477739d17e14e5d8ee39b19cb40748&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F012e3b5954ee3da8012193a387c830.png%401280w_1l_2o_100sh.png"
</script>

<h1>Hello {name}!</h1>
<h1>Hello {name.toUpperCase()}!</h1>
<img {src} alt="Hello {name}!">

如果希望css规则能够全局生效可以使用:global关键字。
实现方式是global修饰的选择器不会添加class选择器。

<style>
/* 所有h1标签 */
:global(h1){
    color: red;
}
/* main标签内的所有h1标签 */
main :global(h1){
    color: red;
}
</style>

引入子组件

注意:自定义组件变量名首字母需为大写字母。并且父组件中的样式不会对子组件生效,反之也一样。

// sullay.svelte
<h1>I am sullay!</h1>

// index.svelte
<script>
    import Sullay from '../components/sullay.svelte'
</script>
<Sullay/>

原样显示

在Svelte中,您可以使用特殊{@html ...}标签进行原样显示。

<style>
.html h1{
    color: chartreuse;
}
</style>

<script>
    let html="<h1>I am sullay!</h1>"
</script>

<div class="html">{@html html}</div>

测试发现上面代码中的color: chartreuse;并没有生效。
原因是因为{@html ...}中的标签并没有添加对应此组件的class属性。
修改一下上面的代码,如下:

<style>
.html :global(h1){
    color: chartreuse;
}
</style>

<script>
    let html="<h1>I am sullay!</h1>"
</script>

<div class="html">{@html html}</div>

阅读本文后相信你对svelte的使用已经有一个简单的认识,后续还会更多svelte教程的内容。部分内容来自于官方教程,有兴趣的可以结合起来一起看。

目录
相关文章
|
应用服务中间件 nginx Docker
使用nginx进行http以及socket端口转发(快速提高docker开发效率)
本文介绍如何使用nginx进行http以及socket端口转发以快速提高docker开发效率
|
Web App开发 Ubuntu Linux
ubuntu 20.04 主题美化
安装Gnome Tweaks工具和gnome扩展
|
JSON 算法 数据可视化
5.3 目标检测YOLOv3实战:叶病虫害检测——损失函数、模型训练
这篇文章详细介绍了使用YOLOv3模型进行叶病虫害检测时的损失函数配置、模型训练过程、评估方法以及模型预测步骤,并提供了相应的代码实现和可能的改进方案。
|
JavaScript
解决vue项目build之后部署到服务器访问的时候出现报错:Uncaught SyntaxError: Unexpected token ‘<‘ chunk-vendors:XXXXXX
解决vue项目build之后部署到服务器访问的时候出现报错:Uncaught SyntaxError: Unexpected token ‘<‘ chunk-vendors:XXXXXX
解决vue项目build之后部署到服务器访问的时候出现报错:Uncaught SyntaxError: Unexpected token ‘<‘ chunk-vendors:XXXXXX
后端测试------使用Postman统一添加请求头
后端测试------使用Postman统一添加请求头
阿里云域名实名认证需要多长时间通过?
阿里云域名实名认证通常在1天内完成,经测试一般10多分钟即可通过,最慢3-5个工作日。如果你的阿里云账号下有已经通过实名认证的域名信息模板,那么域名实名认证的时间会更快一些,如果是阿里云新账号,之前没有注册过域名,那么填写域名信息模板并等待实名认证,时间就会稍微多一些
|
人工智能
技术经验分享:CF223C
技术经验分享:CF223C
99 0
|
消息中间件 数据采集 Kubernetes
鲲鹏展翅凌云志:iLogtail社区2022年度开源报告
iLogtail 作为一款阿里云日志服务(SLS)团队自研的可观测数据采集器,拥有的轻量级、高性能、自动化配置等诸多生产级别特性,可以部署于物理机、虚拟机、Kubernetes 等多种环境中,用于采集文件、容器输出、指标等各类可观测数据。iLogtail 的核心定位是帮助开发者构建统一的数据采集层,助力可观测平台打造各种上层的应用场景;此外,对于一些寻求轻量计算的场景,也可以使用 iLogtail 承担一些数据聚合、数据过滤、数据路由等功能。
16527 3
鲲鹏展翅凌云志:iLogtail社区2022年度开源报告

热门文章

最新文章