QML ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์์ ์๋ฐ์คํฌ๋ฆฝํธ ํํ์ ๋๋ ๋ช ๋ น๋ฌธ์ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค.
์๋ฅผ ๋ค์ด ํจ์ ํธ์ถ๋ฟ๋ง ์๋๋ผ:
<my-elem>[[_myConcat(myAttr1, " - ", myAttr2)]]</my-elem>
๊ทธ๋ฌ๋ ์ ํจํ js ๋ฌธ๋ ์์ผ๋ฏ๋ก ์์ ํด๋์ค์ ๋ชจ๋ ํจ์๋ฅผ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค. ์:
<my-elem>[[myAttr1 + " - " + myAttr2]]</my-elem>
๋๋:
<button style="display: [[_isAdminDisplayBlockOrNone(isAdmin)]];">Admin login</button>
์๊ฒ:
<button style='display: [[isAdmin ? "block" : "none"]];'>Admin login</button>
๋ํ Math
๋ฐ Date
์ ๊ฐ์ ๋ด์ฅ js ๊ฐ์ฒด ์ฌ์ฉ์ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ญ ํจ์ ํธ์ถ ์:
<lint rel="import" href="an3thPartyLibrary.html">
...
<template>
<div>[[an3thPartyFunction(myAttr)]]</div>
</template>
์ด๊ฒ์ ์์ ์ธํฐํ์ด์ค์ ์ฝ๋ฉ ์๋๋ฅผ ๋จ์ํํฉ๋๋ค.
ํด๋ฆฌ๋จธ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ด ์ด๋ฏธ ์์ฑ์ ๋ํ ๋ณ๊ฒฝ ์ด๋ฒคํธ๋ฅผ ๊ฐ์ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ตฌํ์ด ์ด๋ ต์ง ์์ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ๋ ํจ์๋ฅผ ํธ์ถํ๋ ๋์ ์ ์ฒด ํํ์์์ eval
๋ฅผ ํธ์ถํฉ๋๋ค.
์ด๊ฒ์ 0.5๋ถํฐ ์ง์๋์์ง๋ง ์ฃผ๋ก ๋ฐํ์ AFAIK์์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๊ตฌ๋ฌธ ๋ถ์ํ์ฌ ๋ฐ์ํ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ก ์ธํด ์๋์ ์ผ๋ก ์ ๊ฑฐ๋์์ต๋๋ค. ๋ ๋ค๋ฅธ ์ด์ ๋ ํ ํ๋ฆฟ์ ๋๋ฌด ๋ง์ ๋ ผ๋ฆฌ๋ฅผ ๊ฐ๋ ๊ฒ์ ์ข์ ์๊ฐ์ด ์๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ ๋ 0.5์์ 1.x๋ก์ ํฐ ํ๋ก์ ํธ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฐธ์ฌํ๊ณ ํ ๋ฒ์ ์ด์ ๊ฐ์ด ์ฌ๋ฌ ์ผํญ ์ฐ์ฐ์๊ฐ ์๋ ๋งค์ฐ ๊ธด ์ค์ ์ผ๋ถ๋ฅผ ๋์ณค์ต๋๋ค.
ํ์ง๋ง 2.0-preview
๋ถ๊ธฐ๊ฐ ์๊ณ ์ ์ด๋ @justinfagnani์์ ๋ํ์์ ๊ธฐ์ตํ๋ ๊ฒ์ฒ๋ผ ๋ฏธ๋์ ์ ํ์ ๋ฏน์ค์ธ์ผ๋ก ์ฌ์ฉ๋ ์ ์๋ ํด๋ฆฌ๋จธ ํํ์ ์ ์ฅ์๊ฐ ์์ต๋๋ค.
์ด์ ํด๋ฆฌ๋จธ ํํ์ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ๋ณด๊ด๋์์ต๋๋ค. ์ด ์์ฒญ์ ๋ํ ์๋ก์ด ๊ณํ์ด๋ ์๊ฐ์ด ์์ต๋๊น? ํ ํ๋ฆฟ์ ๋๋ฌด ๋ง์ ๋ ผ๋ฆฌ๊ฐ ์์ด์ผ ํ๋ค๋ ๋ฐ ๋์ํ์ง๋ง ๊ฐ๋จํ JavaScript ํํ์์ ์์ ํ ํ์ฉํ์ง ์๋ ๊ฒ์ ์ง๋์น๊ฒ ์ ํ์ ์ด๋ฉฐ ๊ฒฐ๊ณผ์ ์ผ๋ก๋ ํ ๋ฒ๋ง ์ฌ์ฉํ๋ ์ฌ์ํ ํจ์๋ฅผ ๋ง๋ค์ด์ผ ํ๋ ๋ฐํจํด์ด ์๊ธฐ๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ ํ๋ฆฟ์ JavaScript์ ์ ์ฌํ ํํ์์ ํฌํจํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ JavaScript๋ง ์ฌ์ฉํ๊ณ ์ฌ์ฉ์ ์ ์ ํํ์ ํ์ ๋ฐ ํ๊ฐ๊ธฐ๋ฅผ ํด๋ผ์ด์ธํธ์ ์ ๊ณตํ์ง ์๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ lit-html๊ณผ LitElement๋ก ๊ฐ ๋ฐฉํฅ์ ๋๋ค. ํด๋ฆฌ๋จธ + ํด๋ฆฌ๋จธ ํํ๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ณ ๊ฐ๋ณ์ต๋๋ค.
Polymer์ ํํ ์์คํ ์ ๋ณ๊ฒฝํ์ง ์์ ๊ฒ์ด๋ฏ๋ก ์ง๊ธ ๋ซ๊ฒ ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ 0.5๋ถํฐ ์ง์๋์์ง๋ง ์ฃผ๋ก ๋ฐํ์ AFAIK์์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๊ตฌ๋ฌธ ๋ถ์ํ์ฌ ๋ฐ์ํ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ก ์ธํด ์๋์ ์ผ๋ก ์ ๊ฑฐ๋์์ต๋๋ค. ๋ ๋ค๋ฅธ ์ด์ ๋ ํ ํ๋ฆฟ์ ๋๋ฌด ๋ง์ ๋ ผ๋ฆฌ๋ฅผ ๊ฐ๋ ๊ฒ์ ์ข์ ์๊ฐ์ด ์๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ ๋ 0.5์์ 1.x๋ก์ ํฐ ํ๋ก์ ํธ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฐธ์ฌํ๊ณ ํ ๋ฒ์ ์ด์ ๊ฐ์ด ์ฌ๋ฌ ์ผํญ ์ฐ์ฐ์๊ฐ ์๋ ๋งค์ฐ ๊ธด ์ค์ ์ผ๋ถ๋ฅผ ๋์ณค์ต๋๋ค.
ํ์ง๋ง
2.0-preview
๋ถ๊ธฐ๊ฐ ์๊ณ ์ ์ด๋ @justinfagnani์์ ๋ํ์์ ๊ธฐ์ตํ๋ ๊ฒ์ฒ๋ผ ๋ฏธ๋์ ์ ํ์ ๋ฏน์ค์ธ์ผ๋ก ์ฌ์ฉ๋ ์ ์๋ ํด๋ฆฌ๋จธ ํํ์ ์ ์ฅ์๊ฐ ์์ต๋๋ค.