[Day24] - 介绍 Svelte.js 如何使用

前几天我们有说明 Virtual Dom 如何实作 ,

今天我们来介绍一个 反对 Virtual Dom 的工具 Svelte.js

Svelte.js LOGO

内文

Svelte.js 也是一个 Compiler 工具的 Web Component 编译器( 框架 )

所以开头就是用 CLI 建立专案拉 ~~

one 利用 Svelte REPL 建立新专案

Svelte 的 CLI 改名很多次 Svelte REPL . Svelte CLI . SvelteKit 都是指 CLI 工具

npx degit sveltejs/template my-svelte-project
cd my-svelte-project
# to use TypeScript run:
# node scripts/setupTypeScript.js

npm install
npm run dev

two 在设定档中开启 web component 的设定

rollup.config.js 档中 加上 customElement: true

 plugins: [
    svelte({
      compilerOptions: {
        customElement: true,
        ...
      }
      ...
    }),
    ...
  ]

three 使用 <svelte:options tag="[tag-name]" /> 来定义 web component

App.svelte

<svelte:options tag="what-ever" />

<script>
  // make sure component Foo is available, but we don't import
  // it... we'll use it with it's tag <my-foo /> (see bellow)
  import './Foo.svelte'
  export let name = 'World'
</script>

<p>Hello, {name}!</p>

<my-foo {name} />

<style>
 p { color: skyblue; }
</style>

Foo.svelte

<svelte:options tag="my-foo" />

<script>
  export let name
</script>

<p>I am {name}</p>

four 注解 App 的挂载

main.js

// 虽然 App 的没被使用 , 但是需要将 import App.svelte , 
// svelte 才知道要将 App.svelte 内设定的 svelte:options 转换成 web component
import App from './App.svelte';

/*
// 注解 new App 避免 svelte 的挂载行为 , 我们只需要 web component
const app = new App({
	target: document.body,
	props: {
		name: 'world'
	}
});
 */

export default app;

成果

参考资料


<<:  【PHP Telegram Bot】Day19 - 基础(8):回圈、Xdebug

>>:  [想试试看JavaScript ] 阵列一些操作阵列好用的方法 reduce

[DAY29]番外篇-使用fetch传送表单资料

昨天我们介绍fetch用get方式来请求资料,并将取得的资料转为JSON格式做运用,今天要来介绍fe...

Day06 - this&Object Prototypes Ch3 Objects - Contents - Property Descriptors

透过 Object.defineProperty 可以设定 value writable 值可修改性...

MyBatis 前导

MyBatis前导 ...

Day 15 - 函数与物件互动2

var color1 ='red'; var r1 = 50; var colorList = [&...

Day 33 打包-ios (部分)

昨天说的是 Android 今天我们来聊聊如何打包 ios, 但因为没有开发帐号,所以就只说 rea...