
Svelte框架介绍
与React、Vue、Angular等传统框架不同,Svelte是一个独特的前端框架,它采用编译时渲染而非运行时渲染,具有如下特点:
无虚拟dom:Svelte在构建时将组件编译为高效的原生JavaScript代码,运行时无需额外的框架代码,性能接近原生;
体积极小:编译后的代码体积远小于传统框架,加载速度更快;
简洁的语法:使用html/css/JavaScript原生语法,学习成本低,代码更直观;
响应式编程:通过简单的赋值操作实现响应式,无需setState或reactive等API;
内置状态管理:组件间通信简单,无需额外引入状态管理库;
Svelte框架安装运行
运行环境:
Node.js14.0.0或更高版本,丁老师更推荐使用Node.js 16以上的版本。
创建项目:
#使用官方模板创建项目
npx degit sveltejs/template my-svelte-app
#进入项目目录
cd my-svelte-app安装依赖:
npm install启动开发服务器:
npm run dev启动成功后,终端会显示项目地址(一般是http://localhost:5000),输入网址打开浏览器就能看到默认页面。
项目结构说明:
my-svelte-app/
├── public/ #静态资源(图片、字体等)
│ ├── favicon.png
│ └── index.html #入口的html
├── src/
│ ├── App.svelte #根组件
│ └── main.js #入口文件
├── package.json #项目配置
└── rollup.config.js #打包配置(类似webpack)编写第一个Svelte组件:
打开src/App.svelte,替换为以下内容:
<script>
let count=0;
function increment(){
count += 1;
}
</script>
<!--模板-->
<div class="container">
<h1>Hello Svelte!</h1>
<p>计数: {count}</p>
<button on:click={increment}>+1</button>
</div>
<!--css样式-->
<style>
.container{
text-align:center;
margin-top:50px;
}
button{
padding:8px 16px;
font-size:16px;
cursor:pointer;
background:#165DFF;
color:white;
border:none;
border-radius:4px;
}
</style>可以看到,无论是从语法结构,还是函数变量,Svelte的代码和html+css就是一模一样!太神奇了!
代码保存后,浏览器会自动刷新页面,页面会显示一个计数器,点击按钮可以看到字增长。可
构建生产版本:
当项目开发完成后,运行以下命令构建优化后的生产版本:
npm run build
#构建后的文件会生成在public/build目录下,可直接拷贝后部署到服务器。Svelte相关工具:
1.SvelteKit:Svelte官方的全栈框架,支持服务端渲染、路由、API等,类似基于React的Next.js;

#创建SvelteKit项目
npm create svelte@latest my-sveltekit-app2.IDE插件:推荐在VS Code中安装Svelte for VS Code插件,支持语法高亮和智能提示。

全文总结:
Svelte以简洁的语法和出色的性能,正在前端领域快速崛起,尤其适合追求轻量和高效的开发者。对于开发更复杂的应用,丁老师建议直接学习SvelteKit,提供了更完整的解决方案。同时丁老师提供基于Sveltekit的全栈应用开发,如果你在Sveltekit的开发过程中,有任何疑问,或是遇到了相关问题,欢迎联系丁老师进行咨询交流。
经常有新客户咨询丁老师,微信小程序和APP有什么区别呢?一般情况下来说应该做哪个?今天丁老师就这个问题做一下介绍。微信小程序和APP的区别微信小程序微信小程序微信平台运行,无需下载安装,用户通过微信搜索、扫码或者朋友分享就能直接使用,用...
在css中,flex弹性布局可以实现内部对象左右、垂直的对齐,在多个html对象中,设置flex后一般情况下,内部的对象高度是保持一致的。比如一个div设置了flex,内部有3个div,这3个div的高度以最高的一个div高度值为准保持...
有同学提问,使用PHP在处理textarea提交的内容时,里边内容是换行了的,怎么把这些内容给解析为ul li格式呢?如:<ul<li aaa</li<li bbb </li</ul 其实很简单,使用...
安装fastadmin,打开后提示"你所浏览的页面暂时无法访问",无法安装,是因为程序的runtime没有写权限,需要对runtime目录,添加写权限。解决方法:windows:右键目录,写入按钮打勾。如果不行,在“...
问题:fastadmin的add/edit方法无法保存数据,检查了页面,name=row['name']正常传送,检查controller,也是默认的方法,什么也没有动可就是无法保存数据。解决:经过仔细研究发现,原来是htm...
正确的USB连线,其次打开开发者选项、USB调试,这些都是老生常谈,就不说了。在确保以上操作无误后,如果还找不到真机,关闭IDE,然后去adb的目录下,即HBuilderX\plugins\launcher\tools\adbs,把adb....
在使用python3.12时突然遇到提示windows No module named distutils,研究了一下,把解决办法分享出来。1.安装 setuptools,它现在也提供 distutils;2.从第三方源(如系统软件包)载入...
在fastadmin中,一个页面的非菜单链接,想要点击后打开指定页面,并且菜单自动展开,该怎么实现呢?经过丁老师研究后,发现超级简单,废话不多说,直接上代码:<a class="btn-addtabs" href=...