
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的开发过程中,有任何疑问,或是遇到了相关问题,欢迎联系丁老师进行咨询交流。
在使用uniapp开发微信小程序,微信开发者工具调试时,明明已经给了获取位置权限,但还是提示需要打开gps获取位置,具体解决办法如下:打开uniapp的manifest.json文件,切换到源码模式,找到mp-weixin节点"...
经常有小伙伴问丁老师,说扫描出来的PDF图片,都是一个一个的,怎么样把他们合并成一个文件呢?我说你去下载一个PDF工具就好了呀,有某某PDF共阅读器、编辑器嘛。小伙伴说不行呀丁老师,因为网上的这些PDF工具有以下缺点:1.体积太大。动辄...
这个时候可以用到live方法
该问题指针对使用宝塔BT面板的同学。在日常开发微信小程序的过程中,突然发现很简单的一个图片调用报404错误了,检查URL是正确的呀,在浏览器中可以打开,并且检查了服务器文件夹,的确有这个文件,排除了缓存的可能,那么到底是什么问题造成微信...
开源节流,控制生产成本,限制开销,是每个企业和单位都要采取的成本控制和管理措施。其中,人力成本是企业在经营中支出占比较大的一块。以IT信息化部门为例,一个负责企业软件系统运维的IT部门,至少需要配置3个员工,每个员工按照IT工程师3-5年工...
在使用idea旗下的产品,如intellij idea,php storm,web storm时,有的时候编辑前端页面JS,在换行时经常会自动出现个}大括号,这一点程序不是很智能,其实后边都已经有括号了。比如下图这样:那么如何解决这个问题呢...
在使用PHP框架CI时,有个很恶心的地方就是他的URL需要带上index.php,比如我要建一个user模块,想要实现www.xxx.com/user/的效果,但是在CI框架下必须要www.xxx.com/index.php/user这样才...
没那么多废话,直接上修改方法public\assets\js\require-table.jspageSize: Config.pagesize || localStorage.getItem("pagesize") |...