目录
一、Svelte 是什么?
二、为什么选择 Svelte?
1. 简单易学
2. 性能出色
3. 体积小巧
三、安装与配置
1. 安装 Node.js
2. 创建 Svelte 项目
3. 启动开发服务器
四、Svelte 基础语法
1. 组件结构
五、实战示例:简单的待办事项应用
1. 创建组件文件
2. 编写组件代码
3. 更新 App.svelte 文件
4. 查看效果
六、总结
如果你刚接触前端开发,可能会被 React、Vue 这些热门框架搞得晕头转向。别担心,今天我要给你介绍一个超容易上手的前端框架——Svelte!它就像前端世界里的“魔法棒”,能让你轻松快速地构建出酷炫的网页应用。
一、Svelte 是什么?
Svelte 是一个全新的前端框架,和 React、Vue 不同,它没有复杂的虚拟 DOM 概念。Svelte 会在构建时把组件编译成高效的 JavaScript 代码,直接操作 DOM,这样就能让你的应用运行得更快、更流畅。简单来说,Svelte 就像是一个聪明的“翻译官”,把你写的组件代码转换成浏览器能直接理解的代码指令。
官方文档:Svelte中文文档
二、为什么选择 Svelte?
1. 简单易学
Svelte 的语法非常简洁,没有太多复杂的概念和配置。对于前端小白来说,如果你对 HTML、CSS 和 JavaScript 有一定的基础的话,就很容易就能理解并上手。
2. 性能出色
由于 Svelte 在构建时就完成了大部分工作,生成的代码非常高效,所以应用运行起来速度很快,响应也很及时。
3. 体积小巧
使用 Svelte 构建的应用体积相对较小,网页加载速度更快,用户体验会更好一些。
三、安装与配置
1. 安装 Node.js
Svelte 的开发需要 Node.js 环境,你可以从Node.js 官网下载并安装适合你操作系统的版本。安装完成后,打开命令行工具,输入
和
node -v
,如果能看到版本号,说明安装成功啦。
npm -v
2. 创建 Svelte 项目
打开命令行工具,进入你想要创建项目的目录,然后运行以下命令:
npx degit sveltejs/template svelte-appcd svelte-appnpm install
命令解释:
:从 Svelte 的模板仓库中克隆一个项目模板到
npx degit sveltejs/template svelte-app
文件夹。
svelte-app
:进入项目文件夹。
cd svelte-app
:安装项目所需的依赖包。
npm install
最终项目结构如下:
3. 启动开发服务器
安装完依赖后,运行以下命令启动开发服务器:
npm run dev
命令行工具会显示一个本地地址(通常是
8080),在浏览器中打开这个地址,你就能看到 Svelte 项目的默认页面啦。运行界面如下:
http://localhost:
四、Svelte 基础语法
1. 组件结构
一个 Svelte 组件就是一个
文件,它由三部分组成:
.svelte
脚本部分:使用
标签包裹,用于定义组件的逻辑。
<script>
模板部分:直接写 HTML 代码,用于定义组件的结构。
样式部分:使用
标签包裹,用于定义组件的样式。
<style>
下面是一个简单的 Svelte 组件示例
:
App.svelte
<script> let count = 0; // 计数函数 function increment() { count += 1; }</script><main> <button on:click={increment}> 点击计数: {count} </button></main><style> button { font-size: 1.2em; padding: 0.5em 1em; background-color: #ff3e00; color: white; border: none; border-radius: 4px; cursor: pointer; }</style>
五、实战示例:简单的待办事项应用
现在,我们来用 Svelte 制作一个简单的待办事项应用,让你更好地掌握 Svelte 的使用。
1. 创建组件文件
在项目的
文件夹下创建一个新的文件
src
。
TodoApp.svelte
2. 编写组件代码
<script> let newTodo = ''; let todos = []; function addTodo() { if (newTodo.trim()!== '') { todos = [...todos, { text: newTodo, completed: false }]; newTodo = ''; } } function toggleTodo(index) { todos[index].completed =!todos[index].completed; todos = [...todos]; } function deleteTodo(index) { todos = todos.filter((_, i) => i!== index); }</script><main> <h1>待办事项</h1> <input type="text" bind:value={newTodo} on:keyup={(e) => e.key === 'Enter' && addTodo()} placeholder="输入待办事项" /> <button on:click={addTodo}>添加</button> <ul> {#each todos as todo, index} <li class:completed={todo.completed} on:click={() => toggleTodo(index)} > {todo.text} <button on:click|stopPropagation={() => deleteTodo(index)}>删除</button> </li> {/each} </ul></main><style> main { text-align: center; padding: 1em; max-width: 800px; margin: 0 auto; } h1 { color: #ff3e00; } input { padding: 0.5em; margin-right: 0.5em; } button { padding: 0.5em 1em; background-color: #ff3e00; color: white; border: none; border-radius: 4px; cursor: pointer; } ul { list-style-type: none; padding: 0; } li { padding: 0.5em; margin: 0.5em 0; background-color: #f4f4f4; border-radius: 4px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; } .completed { text-decoration: line-through; color: #888; }</style>
运行效果如下
3. 更新
App.svelte
文件
App.svelte
将
文件的内容替换为以下代码,引入我们刚刚创建的
App.svelte
组件:
TodoApp
<script> import TodoApp from './TodoApp.svelte';</script><main> <TodoApp /></main><style> main { text-align: center; padding: 1em; max-width: 800px; margin: 0 auto; }</style>
4. 查看效果
保存所有文件后,在命令行工具中运行
,然后在浏览器中打开 ,就可以看到简单的待办事项应用。你可以输入待办事项,点击添加按钮添加到列表中,点击列表项可以标记为完成或未完成,点击删除按钮可以删除待办事项。具体界面效果如下:
npm run dev
六、总结
通过以上内容介绍,相信大家已经了解了 Svelte 是什么,为什么选择它,以及它的基础语法和实战应用。Svelte 是一个非常适合前端小白学习的新型前端框架。它具有易上手、性能出色等优点,感兴趣的前端朋友可以亲自试一试!大家如果在使用过程中遇到问题的话,欢迎在评论区留言交流哦!