前几天我们有说明 Virtual Dom 如何实作 ,
今天我们来介绍一个 反对 Virtual Dom
的工具 Svelte.js
Svelte.js 也是一个 Compiler 工具的 Web Component 编译器( 框架 )
所以开头就是用 CLI 建立专案拉 ~~
利用 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
在设定档中开启 web component 的设定
在
rollup.config.js
档中 加上customElement: true
plugins: [
svelte({
compilerOptions: {
customElement: true,
...
}
...
}),
...
]
使用 <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>
注解 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
昨天我们介绍fetch用get方式来请求资料,并将取得的资料转为JSON格式做运用,今天要来介绍fe...
透过 Object.defineProperty 可以设定 value writable 值可修改性...
MyBatis前导 ...
var color1 ='red'; var r1 = 50; var colorList = [&...
昨天说的是 Android 今天我们来聊聊如何打包 ios, 但因为没有开发帐号,所以就只说 rea...