Riot.Js5.2.0 ์ถ์๐ ๊ตฌํ ๊ตฌ๋ฌธ ์ง์
12666 ๋จ์ด JavaScriptRiot.jsupdatetech
๋ ธํธ ๋ฅผ ๋ฐํ ํ๋ค
๊ณต์ ์ฐฝ๊ณ ์ ๋ฐํ ๋ ธํธv5.2.0๋ฅผ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
Some liked more the old RIot.js syntax so you can now write components also as follows
๊ทธ๋ ๊ตฐ์. ์์ ์๋ v3ํ๊ณผ์ ๋ฌธ๋ฒ์ด ์๊ฐ๋ณด๋ค ์ธ๊ธฐ๊ฐ ๋ง์์ด์.v4.0.0์์ ํ๊ดด์ ์ธ ๋ณ๊ฒฝ์ด ๋ฐ์ํ๊ณ ๋ฌธ๋ฒ๋ ๋๋ผ๋ง๋ก ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์ v4๊ณผ์์ ๋ฆฌ์คํธ๋ฅผ ๋ ๋ ์ฌ๋๋ ์ด๋ ์ ๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ผ ์ด์ ๋ฐ๋งค ๋ ธํธ์ ๋์ธ ์ฝ๋๋ฅผ ๋ด ์๋ค.
<old-syntax>
<p>{ state.message }</p>
<button onclick="{onClick}">Click Me</button>
<script>
this.onBeforeMount = () => {
this.state.message = 'Hello'
}
this.onClick = () => {
this.update({
message: 'Goodbye',
})
}
</script>
</old-syntax>
๊ทธ๋ ๊ตฌ๋.export default {}
์ ์จ๋ ๋์ฃ .๋ฌผ๋ก ์ฐ๊ณ ๋ ์กฐ์์ ํ์ธํ๋ค.์ฐธ๊ณ ๋ก ํ์ฌ์ ์๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋น๊ต๋ฅผ ์ํด ์ฐ๊ฒ ์ต๋๋ค.<current-syntax>
<p>{ state.message }</p>
<button onclick="{onClick}">Click Me</button>
<script>
export default {
onBeforeMount() {
this.state.message = 'Hello'
},
onClick() {
this.update({
message: 'Goodbye',
})
},
}
</script>
</current-syntax>
์ด๊ฒ๋ฐ์ ๋ชจ๋ฅด๋๊น ์ด๋ป๊ฒ ์ฐ๋ ๊ฒ ์ข์์ง ๋ค์ ๋ณผ๊ฒ์.๐3๊ฐ ๋งค๊ฐ ๋ณ์:opts,proops,state
์ฐ์ 3๊ฐ ํ๋ผ๋ฏธํฐ
opts, props, state
์ ํ์ธ๋ถํฐ ์์ํ๋ค.๋ค์ ์ฝ๋๋ฅผ ํตํด ํ์ธํ ํ props, state
๋ฌธ์ ์์ด ๋์์ ํ์์ผ๋ opts
์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.console.log(opts) // opts is not defined
this.onBeforeMount = (props, state) => {
console.log(props) // {title: "Old Syntax Demo"}
state.message = 'Hello'
}
๋ผ์ดํ ์ฌ์ดํด ๋ฐฉ๋ฒ์ ์ฐ๊ธฐ
๋ค์์ ๋ผ์ดํ ์ฌ์ดํด์ ์ฐ๋ ๋ฐฉ๋ฒ์ ๋๋ค.์ง๊ธ์ ์ฐ๋ ๋ฒ๋ ๊ด์ฐฎ์ง๋ง ๊ตฌํ ์ฐ๋ ๋ฒ
this.on('xxx')
์ ๋ชป ์ฐ๋ ๊ฒ ๊ฐ์์.// OK
this.onMounted = () => {
this.update({
message: 'Bye',
})
}
// NG
// SyntaxError: Unexpected token
this.on('mount', () => {
console.log(this)
})
script ํ๊ทธ ์๋ต
๊ตฌ ๋ฒ์ ์ ์๋ฒ์์
<script>
๋ผ๋ฒจ์ ์ฐ์ง ์์๋ ๋์ง๋ง, ์ด๊ฒ์ ์๋ตํ ์ ์๋ค.<old-syntax>
<p>{ state.message }</p>
<button onclick="{onClick}">Click Me</button>
<!-- error -->
this.onBeforeMount = () => {
this.state.message = 'Hello'
}
this.onClick = () => {
this.update({
message: 'Goodbye'
})
}
</old-syntax>
์ด์ ๋ฒ์ ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฌผ๋ก
riot.mount('*')
์ฒ๋ผ mount ๋ฐฉ๋ฒ์ ์ด๋ํฐ์observable, mixin
๋ฑ์ ์ฌ์ฉํ ์ ์๋ค.๋๋งบ๋ค
์์งํ ๊ธฐ๋์น๋ณด๋ค ์กฐ๊ธ ๋ฎ์ ๊ฑด ์ง์ฌ์ด์ผ๐ v3ํ๊ณผ์ ๋ฌธ๋ฒ์ ์ง์งํ๋ ์ฌ์ ํต์ง์์ ๋๋ ๊ฐ์๊ฐ์์ ๋ณต๊ฐ์ ์๊ฐํ์ง๋ง ๊ทธ๊ฑด ๋๋ฌด ์ด๋ฅด๋ค๐ฆ ์ด๋ ๊ฒ ๋งํ๋ฉด ๋ช ํํ์ง ์๊ฒ
export default {}
์จ๋ ๋ผ์. ์
๋ฐ์ดํธ ์ฐจ์ด๊ฐ ๋ณ๋ก ์์ด์.๊ทธ๋ฌ๋ฉด ๊ฐ์ธ์ ์ผ๋ก๋ ๋ช
์export default {}
์ ๊ฐ๋
์ฑ์ด ๋์์ ์ข์ํด์.๊ทธ ์ ์ ์ ๋ฐ์ดํธ์์ ๋ถํ ๊ธฐ๋ฅ์ด ์์์ง๋ ๋ชจ๋ฅด๋ ์์ํ ๊ธฐ๋๋ฅผ ๊ฐ์ง๊ณ ์ด ๊ธฐ์ฌ๋ฅผ ๋๋ด๋๋ก ํด์ฃผ์ธ์
๊ทธ๋ผ ์๋ ํ ๊ณ์ธ์.ฯ ใ)ใ
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(Riot.Js5.2.0 ์ถ์๐ ๊ตฌํ ๊ตฌ๋ฌธ ์ง์), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://zenn.dev/kkeeth/articles/riotjs_old_syntaxํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค