...一、Svelte简介Svelte是一个新兴的流行前端框架。作者是里奇·哈里斯,这也是一个编译器。在《State of JS survey of 2020》报告中,预测它是一种新兴技术,可能会在未来十年内取代其他框架,如React和Vue。在开源托管网站Github上,Svelte也获得了超过61k的关注,仅次于明星框架React和Vue。2.Svelte的优势其实,作为一个前端框架,Svelte在语法和用户体验上并没有什么特别之处。真正不同的是Svelte对前端AOT(ahead-of-time,可以理解为预编译)的探索。如果你对React和Vue的设计思想有更深入的了解,就会知道它们必须为虚拟dom和diff算法引入运行时(runtime)代码。Svelte的设计思路是【通过静态编译,即预编译,减少框架运行时的代码量】。Svelted完全集成到JavaScript中,应用程序所需的所有运行时代码都包含在bundle.js中,因此无需引入额外的Runtime。React和Vue都是基于运行时的框架。当用户操作页面进行各种操作改变组件的状态时,框架的运行时会根据组件状态(state)计算(diff)哪些DOM节点需要更新,从而更新view。这意味着运行时框架本身所依赖的代码也将被打包到最终的构建产品中,导致打包后的体积不可避免地增加。3.Svelte的缺点作为一个还处于起步阶段的框架,Svelte还是有很多缺点的。如果用于大型商业项目,需要特别小心。4.快速入门4.1创建项目与其他前端框架一样,创建Svelte项目非常简单,命令如下。npmcreatesvelte@latestmy-appcdmy-appnpminstallnpmrundev然后在浏览器中打开http://localhost:5173/访问对应的页面,运行效果如下图。如果需要修改端口号,可以打开package.json文件,然后在启动命令中修改环境变量PORT。"scripts":{"dev":"PORT=4000rollup-c-w",},4.2lessconfiguration创建Svelte项目时,模板本身不携带任何插件。如果需要在Svelte组件中少写一些,需要安装相关的依赖。npminstallsvelte-preprocess-lessless然后在rollup.config.js中添加相关配置,如果没有rollup.config.js文件,可以新建一个。从“svelte-preprocess”导入sveltePreprocess;import{lessassvelteLess}from'svelte-preprocess-less';exportdefault{plugins:[svelte({preprocess:sveltePreprocess({style:svelteLess(),}),}),],};接下来我们可以在组件中使用...由html、css和js代码组成,类似于vue。其中,当属性名和变量名是同样,我们也可以简单地省略变量名。风格与其他写作方法相同。但是上面说的例子都是简单的小组件。对于一个完整的应用程序,它必须由多个组件组成。和其他框架一样,使用的时候需要导入。不同的是import需要写在5.2Responsive响应式也是核心特性之一苗条的。可以直接在js中修改绑定变量,在DOM上可以同步看到数据变化。点击了{count}{count===1?'time':'times'}类似于vue中的computed,这里叫作[reactivedeclaration],这样写:letcount=0;$:加倍=计数*2;然后,您可以在公共图像中使用doubled,例如count。Svelet的响应性是由赋值语句触发的,因此数组的push和splice等操作不会触发更新。例如,正确的方法是手动添加一个看似多余的赋值语句。