ããã°ç§»è»¢
ãããœãããã°ã¯ãMediumã«ç§»è»¢ããŸããã
ãã¡ãã®ããã°ã¯ãã®ãŸãŸã«ããŠãããŸãã
Jules of Nature

romaâ
Sade Olutola
The Stonewall Inn

"I'm Dorothy Gale from Kansas"
ð

â
One Nice Bug Per Day
Cosmic Funnies
Xuebing Du

shark vs the universe
occasionally subtle

izzy's playlists!
EXPECTATIONS
cherry valley forever
The Bowery Presents

seen from Ecuador

seen from Germany
seen from United Kingdom

seen from United States

seen from United States
seen from United States
seen from United States
seen from United States
seen from Mexico

seen from Japan

seen from United States

seen from Denmark

seen from United States
seen from Bangladesh
seen from Serbia
seen from Ecuador
seen from Malaysia

seen from United States
seen from United States
seen from United States
@kazupon-blog
ããã°ç§»è»¢
ãããœãããã°ã¯ãMediumã«ç§»è»¢ããŸããã
ãã¡ãã®ããã°ã¯ãã®ãŸãŸã«ããŠãããŸãã

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
2017 IN REVIEW
ãã€ãã®æãã§ã2017幎æ¯ãè¿ã£ãŠã¿ãŸããã
GitHub ã®è (contributions)
2017幎ã®èã¯ãããªæãã«ãªããŸããã2016幎ã®èãæ¯èŒã®ããã«èŒããŠãããŸãã
2017 GitHub contributions
2016 GitHub contributions
contributions ã¯ä»å¹Žã¯ 4151 ã§ãå»å¹Žã¯ 3505ã
å»å¹ŽãšåãããVue.js ã® OSS ã«ããã¬ãã¥ãŒãå ¬åŒããã¥ã¡ã³ããawesome-vue ã®ã¡ã³ããªã©ã«ããæŽ»åãã»ãšãã©ãåŸã¯ãStorybook ãšããå人㮠vue-i18n ãšãã£ãæãã§ãããã
ä»å¹Žã¯å»å¹Žããå¢ããŠããŸãããOSS ã®æ¹ã§ã¯ããããªã«ã¬ãªã¬ãªã³ãŒãæžããŠã³ãããããŠãªãã®ã§ãæ¥åã§æ°èŠéçºãããžã§ã¯ãããã£ããããã®éçºã³ãããæ°ã§èšããã§ããããšããæãã§ããããã
ã€ãã³ãã§ã®çºè¡š
ä»å¹Žã®çºè¡šã¯ä»¥äžã® 5 ä»¶ ã§ããã
Vue.js vue build
ã€ãã³ã: DIST.14 ãäºäŸã§èŠãVue.jsãšJavaScript LTã
Vue.js Single File Components++
ã€ãã³ã: Meguro.es x Gotanda.js #1 in Drecom
Vue on Storybook
ã€ãã³ã: NodeåŠå 26æéç®
Vue.js Extend with Compiler
ã€ãã³ã: ToKyoto.js â Kyoto.js in Tokyo
Future of Vue.js
ã€ãã³ã: Vue.js Tokyo v-meetup #6
å»å¹Žãšæ¯ã¹ããšèœã¡çããæãã§ããå»å¹Žã®ãµãããã§æèšãããšããæ§ããããšãã§ããŸããã
ã€ãã³ãäž»å¬
èªåãVue.js æ¥æ¬ãŠãŒã¶ãŒã°ã«ãŒãã® organaizer ã§ãããä»å¹Žã¯ä»¥äžã® Meetup ã€ãã³ã 4 ä»¶éå¬ããŸããã
Vue.js Tokyo v-meetup="#3" (åå ç³ãèŸŒã¿æ°: 251)
Vue.js Tokyo v-meetup #4 (åå ç³ãèŸŒã¿æ°: 294)
Vue.js Tokyo v-meetup #5 (åå ç³ãèŸŒã¿æ°: 243)
Vue.js Tokyo v-meetup #6 (åå ç³ãèŸŒã¿æ°: 270)
å»å¹Žã¯2ä»¶ã ã£ãã®ã«ãä»å¹Žã¯4ä»¶ãå æ¥ã®ããã°ã§æžãããšãããããã¯å®å š Vue.js 人æ°ã®äœæ³¢ã§ããåå ç³ã蟌ã¿äººæ°ãåžžã«200人ãªãŒããŒã§ãåééå§ãã1æéãããããªããã¡ã«å®å¡éãã人æ°ã¶ãã
å»å¹ŽãŸã§åæã¡ã³ããŒã®Vue.js æ¥æ¬ãŠãŒã¶ãŒã°ã«ãŒãã¹ã¿ãããšç§ã§éå¶ããŠããŸããã®ã§ããã®èŠæš¡ã«ãªããšãã«ã¹ã¿ãã¯ã§ã¯æã«è² ããªããªã£ãã®ã§ãéäžããæ°èŠã«éå¶ã¡ã³ããŒãåéããŠä»ã¯ã€ãã³ãåœæ¥ã¯12ã15åãããã§éå¶ã§ããããã«ãªã£ãŠå€§å楜ã«ãªã£ãæãã§ãã100åèŠæš¡ãéãŸãMeetupã€ãã³ãã®éå¶ãæ¯ãããããã«ãªã£ãã®ã¯ãã¹ã¿ããã®çããã®ããããªã®ã§å€§å€æè¬ã§ãð ã
OSS 掻å
å»å¹Žã«åŒãç¶ãã Vue.js ã®ã³ã¢ããŒã ã¡ã³ããŒãšããŠæŽ»åããŠããŸããäž»ã«ä»¥äžã®æŽ»åãããŸããã
vuejs/jp.vuejs.org: Vue.js æ¥æ¬èªå ¬åŒããã¥ã¡ã³ãã®ç¿»èš³ã¡ã³ã
vuejs/vue-ssr-docs: Vue.js ãµãŒããµã€ãã¬ã³ããªã³ã°ã®ããã¥ã¡ã³ã翻蚳ãšã¡ã³ã
vuejs/awesome-vue: Vue.js é¢é£ã®ã©ã€ãã©ãªããšã³ã·ã¹ãã ã®çŽ æŽããããªã¹ã
ãã®ä»ã®ä»¥äžã¬ããžããªã®ããã¥ã¡ã³ã翻蚳ã¡ã³ã
vuejs/vue-router
vuejs/vuex
vuejs/vue-loader
vuejs/vue-test-utils
å»å¹Žã¯ Vue 2.0 ã®ãªãªãŒã¹ã®ããã«ãVue ã³ã¢ã®åäœãã¹ããšãã£ãããã¥ã¡ã³ã以å€ã«å®è£ ã«ãã³ãããã§ããŠãããã§ããã©ãä»å¹Žã¯ããã¥ã¡ã³ãã®ã³ããããšãªã£ãæãã§ãã
vuejs/vue-ssr-docs ã¯æ°èŠããã¥ã¡ã³ãã®ç¿»èš³ã ã£ãã®ã§å€§å€ã ã£ãã®ã§ãVue 2.0 ã®ããã¥ã¡ã³ã翻蚳ãšåæ§ã«ãVue.js ã³ãã¥ããã£ã®åãšãGitLocalizeã®åãåããŠãããŸããã
äžã§ããGitLocalizeã¯ãã³ãå©ãããŸããã翻蚳ã®äžçªå€§å€ãªã®ã¯ãåæã®æŽæ°ã®è¿œè·¡ãªã®ã§ãGitLocalizeã§è¿œè·¡ããŠæ€åºããŠãããã®ã¯å€§å€å©ãããŸãããGitLocalizeã®äžã®äººã«ã¯å€§å€æè¬ã§ãã
ä»åã®ç¿»èš³ã§ã¯ãGitLocalize ãå©çšãããŠé ããŸãããGitLocalize ã«ã倧倿è¬ã§ãïŒhttps://t.co/2yaQv2qxoY
â ð€kazuya kawaguchið€ (@kazu_pon) 2017幎7æ11æ¥
vuejs/jp.vuejs.org ã®ããã¥ã¡ã³ãã¡ã³ãã¯ãã³ãã¥ããã£ã®æ¹ãåå ããŠãããããã«ãªã£ãã®ã§ãå»å¹Žãšããã¹ãŠæ¥œã«ãªããŸãããäžã§ããre-fort ããã® che-tsumi ãšãã bot ã®æå ¥ã¯ãGitHub Issues ã§ç¿»èš³å 容ã Issue ãšãã圢ã§ãã±ããåããããããŠãã®ãŸãŸåã蟌ãããã®ã¯ Pull Request ã«ããŠãããããã«ãªã£ãã®ã§ã倧åéçšè² è·ãšç®¡çãäœæžãããããã«ãªããŸãããæ¥æ¬ã® Vue.js ã³ãã¥ããã£ã«ã¯å€§å€æè¬ã§ãðã
ä»ã«ãVue.js é¢é£ã§èªåãã¡ã³ãããŠãããã®ãšããŠãvue-i18n ãš vue-validator ãæã£ãŠããã®ã§ããããããã«ã€ããŠã掻åããŠããŸãã
å€èšèªåã©ã€ãã©ãªã® vue-i18n ã«ã€ããŠã¯ã以äžã®ã¡ãžã£ãŒãªãªãŒã¹ãããŠããŸãã
6.0.0
7.0.0
ãããŠãããçŽè¿ã® 7.3.0 ã®ãªãªãŒã¹ã§ã¯ãããã©ãŒãã³ã¹ãæå€§åã§ããããã«å¯Ÿå¿ããŸãããããã®æãã®ãªãªãŒã¹å¯Ÿå¿ã®å 容ãã©ããªãã®ã§ãããã©ããåãã£ãŠãããããããåããŠè±èªã§ããã°èšäºæžããŸãããæ®æ®µããã°ããããªã«æžããªãã®äžãããã«è±èªãªã®ã§å€§å€ã§ããããæžããŠã¿ãŠæå€ãšè±èªã§æžãããããªãã ãªããšå®æããŸãããæµ·å€ã®äººã«èªã¿ããããã®ãã©ããåãããŸãããã
vue-validator ã«ã€ããŠã¯ãå»å¹ŽVue.jså ¬åŒããåãäžããŠããã¡ã³ãã§ããŠããªãã®ãšãä»åŸ i18n ã«ãã©ãŒã«ã¹ããŠãããããããæ®å¿µããã€ãæè¿éçºã忢ããããšã決æãããªããžããªã archive ããŸããã
I archived vue-validator â repository, due to I'll focus to vue-i18n ð maintanance and new ideas of i18n architechture for WebAssembly. Thank you for everything you have done for vue-validator. /cc @vuejs https://t.co/MhNTZrqpGx
â ð€kazuya kawaguchið€ (@kazu_pon) 2017幎12æ25æ¥
æåŸã«ãVue.js 以å€ã® OSS 掻åã«åãçµã¿ãšããŠãStorybook ã§ Vue ããµããŒãããããã«ãã¡ã³ããŒã«å ãã£ãп޻åããŸããã
ã€ãå æ¥ã®ããã°èšäºã«ãæžããŸããããStorybook ã¯ã³ã³ããŒãã³ããšãã£ãUIéçºç°å¢ãæäŸããããŒã«çãªãã®ã§ãããReact.jsãRaact Native ãšãã£ã React é¢é£ã®ã®ã¿ãããµããŒãããŠããŸããã§ãããåæ§ãªãã®ãšããŠãvue-playããããŸãããäœè ã®egoistæ°ã vue-play ã«å¯ŸããŠæŽ»åãã¢ã¯ãã£ãã§ã¯ããããStorybook ãšåçã®ãã®ãå©çšã§ããç¶æ ã§ã¯ãããŸããã§ããã
ãããªäžãStorybook ã§ Vue.js ããµããŒãããããã« Storybook ã®ã¡ã³ããŒãšãã£ããã«èªåãéçºãé²ããŠãªãªãŒã¹ã§ããããšã¯ã倧å€ãšããµã€ãã£ã³ã°ã§ãã£ãããVue.js ã³ãã¥ããã£ã Storybook ã䜿ã£ãŠå¹ççãªã³ã³ããŒãã³ãéçºãå¯èœã«ãªãã®ã¯ãéçºäœéš(DX: Development Experience)ããããªãã®ã§ããã³ãããã£ããšæã£ãŠããŸãããŸããStorybook ã®ããŒã ã¡ã³ããšããŠåå ããããšã«ãã£ãŠãä»ã® OSS ã®æåãäœéšããããšãã§ããŠããã£ããšæã£ãŠããŸãã
ããããã£ã¹ã
2017 幎ã¯åããŠããããã£ã¹ãã«åºæŒããããããããããªã 5 ä»¶ãã
genba.fm: #1 Awesome Vue
soussune: 28. ã³ã¢ã³ããã¿ãŒãèªãVue.jsã®è©±
soussune: 32. Vueã§ã¯ã€ã¯ã€ãã£ãŠãã
soussune: 33. Vueã§ã¯ã€ã¯ã€ãã£ãŠãã Aftershow
ãããªãã©ãžãª: sp.9aãã²ã¹ã: kazu_ponãæ¥œããå»äººæ Œéã²ãŒããŒãWebç³»CTOã«ãªããŸã§
ãããªãã©ãžãª: sp.9bãã²ã¹ã: kazu_ponãæ¥œããOSSã³ã¢ããŒã ã¡ã³ããŒãžã®é
ããããã£ã¹ãã¯äžã é£ããã§ããã話ãã·ããªãªã¯äºã show notes ãªã©ã§èããŠãããã§ãããå®éã«ã¯ããŒãœããªãã£ãšå¯Ÿè©±åœ¢åŒã¿ãããªæãã§é²ããŠããã®ã§ããªã¹ããŒã®ã¿ãªãããæèããåãå¿ èŠããããŸãã®ã§ã
æ¥å¹Žã¯ããå°ããªã¹ããŒã«èŽããããè©±ãæ¹ã«ããŠãããããšããã§ãã
ä»äºé¢ä¿
ä»å¹ŽãåŒãç¶ããCTO ãšããŠäŒç€Ÿã®ã·ã¹ãã å šè¬ããªãŒãããªããéçºãã€ã€ãCFO çãªäŒç€Ÿã®äºç®èšç»ããã£ãã·ã¥ãããŒåšããã¿ãªãããã£ãŠããŸãããä»å¹Žã¯æ¡çšåšãã®äººäºããã£ãŠããŸãã
éçºã¯ãä»å¹Žã¯æ°èŠãããžã§ã¯ããç«ã¡äžããç¡äºçµããŠã次åã«åããŠé²ããããšãã§ããŠããã£ãã®ã§ãããããã«äŒŽãéçºåã匷åããããã«ãšã³ãžãã¢ãå¿ èŠã«ãªã£ãŠããŠããŸããä»å¹Žã¯èªåã®ç®æšãšããŠã¯æ°ãã仲éãå¢ããããã£ãã®ã§ãããçŸæç¹ã®çµæãšããŠã¯æ¡çšã§ããŠããªãã®ã§ããªãæ¡çšã§ããªãã£ãã®ãããããããšåçããŠã¿ãŠãåŒãç¶ãæ°ãã仲éãšå ±ã«ãã£ããã«ãã£ãŠãããããã«ããããšããã§ãã
æ¥å¹ŽåºŠã«ãã㊠(ãŸãšã)
ä»å¹ŽããOSS ã®æ¹ã¯å»å¹Žã«åŒãç¶ã Vue.js ã³ã¢ããŒã ãšã㊠OSS 掻åããä»ã« Storybook ã®ã¡ã³ããŒãšã㊠OSS 掻åããŸããã
ã€ãã³ãã®æ¹ã¯æ°ãã«å ãã£ãã¹ã¿ãããšå ±ã«ãã£ããã«ããããšã§å®æçã«éå¬ãã圹å²åæ ããããšã§éå¶ããããšãã§ããŸããã
ä»äºã®æ¹ã¯ãåŒãç¶ã CTO & éçºãçµå¶äŒç»ããªãããããã«äººäºåšãã®çµéšããŠããŸããã
æ¥å¹ŽåºŠã§ãããOSS ã®æ¹ã¯ãVue.js ã®ããã·ã§ã³ã«åããŠåŒãç¶ãã³ã¢ããŒã ããã㊠Storybook ã®ã¡ã³ããŒãšã㊠OSS 掻åããŠãããŸããã翻蚳以å€ã« OSS éçºããæéãå¢ãããŠãããããšèããŠããŸãã
å ·äœçã«ã¯ãWebAssembly æä»£ãæ³å®ãã i18n ã®æ°ããã¢ãŒããã¯ãã£ã®ãããã¿ã€ããå®è£ ããŠãããããšèããŠããŸãã
WebAssembly ã®æ¹ã¯ä»å¹Žäž»èŠãã©ãŠã¶ã§ãµããŒãããããã«ãªããããã«äŒŽã AssemblyScript ã«ãã㪠WebAssembly ããµããŒããããããªèšèªãåºçŸãã€ã€ãããŸãããŸããWebAssembly 㯠GC ãªã©ã®æ¬¡ã«åãã仿§ããWeb 以å€ã§ã®åäœãæ³å®ãã仿§ãçå®ããã€ã€ãããŸãã
ãããŸã§ãvue-i18n ãéããŠå€èšèªåã©ã€ãã©ãªãäœæããŠããŸãããããã®ã©ã€ãã©ãªéçºã ECMA-402 ã®ä»æ§ããããŠãã®"i18n ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã¯æ°ãã todo apps?"ãšããèšäº"ã«ãããéããç¹å®ã®ããã°ã©ãã³ã°èšèªããã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã«äŸåããªããi18n ã®ã¢ãŒããã¯ãã£ãèããŠä»çµã¿ãæäŸããããšæãããã«ãªããŸããã
WebAssembly ã®å°æ¥æ§ãèãããšãi18n ã¯ãŸãã«ãŠãŒã¹ã±ãŒã¹ã«ããã¿ãªã ãšèããŠããŸãã
æ¥å¹ŽåºŠã¯ãWebAssembly é¢ä¿ã®æè¡ããŠã©ãããã€ã€ãi18n ã®æ°ããã¢ãŒããã¯ãã£ã® PoC ããã£ãŠãããããšããã§ãã
ã€ãã³ãã®æ¹ã¯ãæ¥æ¬ã§ Vue.js ã«ã³ãã¡ã¬ã³ã¹éå¬ã«åããŠãã¹ã¿ãããšãã£ããã«é 匵ããŸãïŒðª
ä»äºã®æ¹ã¯ãäœãšããŠã§ãæ°ãã仲éãšãã£ããã«ãã£ãŠãããããšããã§ãã
ããã§ã¯ãçæ§ãè¯ãã幎ããæ¥å¹Žããããããé¡ãããããŸãã
Vue.js 2017幎ãŸãšã & ä»åŸ
ãã®èšäºã¯ãVue.js #1 Advent Calendar 2017ã®25æ¥ç®æåŸã®èšäºã§ãã
Vue.js 2.0 ã®ãªãªãŒã¹ããã2016幎10æãã1幎以äžçµéããŸãããä»å¹Žã¯ã¡ãžã£ãŒãªãªãŒã¹ã¯ç¹ã«ãããŸããã§ãããããã°å¯Ÿå¿ãæ©èœè¿œå ãããŠæ¹åãéããŠçå®ã«ã®ãªãªãŒã¹ãç©ã¿éããŠé²åããŠããŸããã
ãã®èšäºã§ã¯ã2017幎㮠Vue.js çéã«ãããç¶æ³ãåºæ¥äºããŸãšãã€ã€ãæåŸã« Vue.js ã®ä»åŸã«ã€ããŠç޹ä»ããŠã4ã€ããã Vue.js ã¢ããã³ãã«ã¬ã³ãã®æåŸãç· ãããããããšæããŸãã
Stats
2017幎 Vue.js ã¯ã©ãã§ãã£ãããStats ãè²ã èŠãŠãããŸãããã
ãŸãã¯ãGoogle Trend ããã
2016å¹Žãšæ¯èŒããŠã2017幎ã¯åžžã«äººæ°ãé«ãç¶æ ãç¶ããŠããã®ãããããŸãã
次ã«ãThe State Of JavaScript ã® Front-end ã®èª¿æ»çµæãèŠãŠã¿ãŸããããæ¯èŒã®ããã«2016幎ã®ãã®ãäžããŠãããŸãã
2017幎床ã®èª¿æ»çµæãããŒã»ã³ããŒãžã§æ²èŒãããŠããªãã®ã§ãããŠã¹ãªãŒããŒã§è¡šç€ºãããæ°å€ãå ã«ç®åºããŠ2016å¹Žãšæ¯èŒãããšä»¥äžã®ããã«ãªããŸãã
I've USED it before, and WOULD use it again (䜿ã£ãããšãããããŸã䜿ãããã): 2016幎10%ã2017幎20%
I've HEARD of it, and WOULD like to learn it (èããããšããããåŠç¿ãããã): 2016幎33%ã2017幎51%
I've HEARD of it, and am NOT interested (èããããšããããèå³ããªã): 2016幎34%ã2017幎22%
äžèšèª¿æ»çµæãããæããã«2016å¹Žã«æ¯ã¹ãŠç¥å床ãé«ããªããèå³ããã£ãŠåŠç¿ããããšããã®ããããã§ãããããŸããããäžåºŠäœ¿ããããšããæºè¶³åºŠã䌞ã³ãŠããã®ãããããŸãã
statsã®æåŸãšããŠãGitHub Stars ã®ç¶æ³ãèŠãŠãããŸããããããã§ãæ¯èŒã®ããã«2016幎ã®ãã®ãäžããŠãããŸãã
å»å¹Ž2016å¹Žãšæ¯ã¹ãŠãstar ãããå é床ã React ã«è¿«ãå¢ãã§äŒžã³ãŠããããšãããããŸãã
ãããã stats ã®çµæãããVue.js ã¯2017å¹Žã¯æ¥æ¿ã«ç¥å床ãé«ããªã£ã幎ãšãããã§ãããã
4ã€ã®ãªãªãŒã¹
ä»å¹Ž2017幎ãVue.js ã¯ä»¥äžã®ããã« 2.x ç³»ã«ãããŠã4ã€ã®ãã€ããŒããŒãžã§ã³ã®ãªãªãŒã¹ãããŸããã
ãããã®ãªãªãŒã¹ã«ãã£ãŠãããã€ãæ©èœãããããæ¹åããããããŸããããããããªãªãŒã¹ã®äžã§æ³šç®ãã¹ããã®ãšããŠä»¥äžã®ãã®ã«ãªãã§ãããã
TypeScript ã®åå®çŸ©ã®æ¹å
ãµãŒããµã€ãã¬ã³ããªã³ã°ã®æ¹å
ãšã©ãŒãã³ããªã³ã°ã®æ¹å
SFCã§ã®é¢æ°åã³ã³ããŒãã³ãã®ãµããŒã
TypeScript ã®åå®çŸ©ã®æ¹å
äžçªå€§ããªãã®ãšããŠã¯ v2.5 ã§ãªãªãŒã¹ããã TypeScript ã®åå®çŸ©ã®æ¹åã§ãããã
Vue.js ã® API ã¯ãªããžã§ã¯ãããŒã¹ã§ãããããåŸæ¥ã® TypeScript ã§ã¯ this ã®åã®æšè«ã¯ç°¡åã§ã¯ãªããTypeScript ã䜿ã£ãŠ Vue.js ã§åã®æ©æµãåããããã«ã¯ãvue-class-component ãšãã³ã¬ãŒã¿ãå©çšããŠåŸæ¥ã® Vue.js ãæäŸãã API ãšå°ãç°ãªããã®ãå©çšããªããã°ãªããŸããã§ããã
ããããTypeScript ã®é²åã«äŒŽããªããžã§ã¯ããªãã©ã«ããŒã¹ã®åãçè§£ã§ããããã«ãªã£ããããVue.js ã®ãªããžã§ã¯ããªãã©ã«ããŒã¹ã® API ã«ãããŠåæšè«ã§ãããããåå®çŸ©ãæ¹åããããšã«ãã£ãŠãvue-class-component ã®ã¯ã©ã¹ããŒã¹ã® API ãšãã³ã¬ãŒã¿ã䜿çšãããšããåæšè«ãå¯èœã«ãªããŸããã
åæã« VSCode ã«ãã㊠veturæ¡åŒµæ©èœãšåæã«å©çšããããšã«ãã£ãŠãèªåè£å®ãããªãæ¹åãããããšã§ãéçºã®çç£æ§ãé«ããããšãå¯èœã«ãªã£ãŠãããä»ã®ãšãã£ã¿ã«ãããŠããvue-language-serverã«ãã£ãŠ language server protocol ããµããŒãããŠããã°ãVSCode + vetur ãšåçã®æ©æµãåããããšãå¯èœã«ãªã£ãŠããŸãã
ãµãŒããµã€ãã¬ã³ããªã³ã°ã®æ¹å
Vue.js 2.0 ã§ã¯ãµãŒããµã€ãã¬ã³ããªã³ã°ããµããŒãããŠããŸããããã€ããŒããŒãžã§ã³ã«ãªãªãŒã¹ã®åºŠã«æ¹åãè¡ã Evan æ°ã«ã¯ç®ãã¿ã¯ããã®ããããŸãã
ã¬ã³ãã©ãžtemplateãªãã·ã§ã³ãrunInNewContextãªãã·ã§ã³ãæ°èŠè¿œå ã«ãããµãŒããµã€ãã¬ã³ããªã³ã°ã®ã¬ã³ãã©ã®æ¹å以å€ã«ããµãŒããµã€ãã¬ã³ããªã³ã°åãã«æé©åãããwebpackãã©ã°ã€ã³ã®äœæãprefetch ã«ããèªã¿èŸŒã¿é«éåããããŠéåæã³ã³ããŒãã³ãããµããŒããvue-template-compilerãvue-loaderãšãã£ã Vue.js ã³ã¢æ¬äœãé¢é£ã©ã€ãã©ãªã«ãæé©åãæœãããšã§ããªãããã©ãŒãã³ã¹ã®æé©åãè¡ã£ãŠããŸãã
ãµãŒããµã€ãã¬ã³ããªã³ã°ã®ããã©ãŒãã³ã¹æ¹åã¯ãNuxt.jsã«ãæ©æµãäžããŠãããNext.js ãšã®ããã©ãŒãã³ã¹ã®ãã³ãããŒã¯ã®ãã®éšåã«ã圱é¿ãäžããã»ã©ã§ãã
ããã«ãv2.5 ã§ã¯ãNode.js 以å€ã®ç°å¢ã§ããµãŒããµã€ãã¬ã³ããªã³ã°ã§ãããã察å¿ããPHP V8Js ã®ãã㪠JavaScript å®è¡ç°å¢ã§åäœã§ããããã«ã¯ã¬ã€ãžãŒãªå¯Ÿå¿ãããŠããŸããèå³ããæ¹ã¯ãã¡ãã®ããã¥ã¡ã³ããåç §ããªããã詊ããŠã¿ããšããã§ãããã
ãšã©ãŒãã³ããªã³ã°ã®æ¹å
ãã€ããŒããŒãžã§ã³ã®ãªãªãŒã¹ã«ãã£ãŠãVue.js ã«ããããšã©ãŒãã³ããªã³ã°ãæ¹åãããŠããŸãã
v2.2 ã§ã¯ãVue.config.errorHandlerãªãã·ã§ã³ãšãrenderErrorã³ã³ããŒãã³ããªãã·ã§ã³ã§ãšã©ãŒãã³ããªã³ã°ã§ããããæ¹åããŠããŸãã
Vue.config.errorHandlerãªãã·ã§ã³ã¯ãã¢ããªã±ãŒã·ã§ã³å ã§çºçããäºæããªããšã©ãŒã以äžã®ããã«ãã³ããªã³ã°ã§ããããã«ãªã£ãŠããŸãã
renderErrorã³ã³ããŒãã³ããªãã·ã§ã³ã§ã¯ãrender颿°ã§çºçãããšã©ãŒããã³ããªã³ã°ããŠç¹å¥ã®ã¬ã³ããªã³ã°åŠçã以äžã®ããã§ããããã«ãªã£ãŠããŸãã
ããã«ãv2.5 ã§ãããã«ã³ã³ããŒãã³ãåäœã§ãšã©ãŒãã³ããªã³ã°ã§ãããããerrorCaptureããã¯ã远å ãããŠããŸããããã«ããã以äžã®ãããªåã³ã³ããŒãã³ãã§çºçãããšã©ãŒããã³ããªã³ã°ãããããªæ±çšã³ã³ããŒãã³ããäœæããããšãã§ããŸãã
ããããããšã©ãŒãã³ããªã³ã°ã®å¯Ÿå¿ã«ãããVue.js ã«ãããŠãããå ç¢ãªã¢ããªã±ãŒã·ã§ã³ãäœæããããšãå¯èœã«ãªã£ãŠããŸãã
SFCã§ã®é¢æ°åã³ã³ããŒãã³ãã®ãµããŒã
Vue.js ã§ã¯ã³ã³ããŒãã³ãã®ã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ãæå€§åããããã«ã以äžã®ãããªé¢æ°åã³ã³ããŒãã³ã(functional components)ããµããŒãããŠããŸãã
v2.5 ãš vue-loader (v13.3.0 以é)ã«ãã£ãŠãSFC(single file components: åäžãã¡ã€ã«ã³ã³ããŒãã³ã)ã«ãããŠã<template>ãããã¯å ã®ãã³ãã¬ãŒããã以äžã®ããã«ããŠãrender颿°ã§ã¬ã³ããªã³ã°ããããå®è£ ããªããŠãããã³ãã¬ãŒãããŒã¹ã§é¢æ°åã³ã³ããŒãã³ããäœæããããšãã§ããããã«ãªã£ãŠããŸãã
ããã«ç¹æ ãããšã³ã·ã¹ãã
Vue.js ã®æé·ãšãšãã«ãšã³ã·ã¹ãã ã圢æãæé·ããŠããŸãããã2017幎ã«ãããŠã¯ã¡ãžã£ãŒãªã©ã€ãã©ãªãUIãã¬ãŒã ã¯ãŒã¯ã¯Vue 2.0 察å¿ãã²ãšéãå®äºããŠå®å®åããŠãã1幎ãšèšããã§ããããç¹ã« Nuxt.js 㯠Vue.js ã®ãµãŒããµã€ãã¬ã³ããªã³ã°ã®æ¹åãšãšãã«ç²Ÿé¬ãããŠãçŸåš 1.0 ã®ãªãªãŒã¹å¯èœãªç¶æ ãŸã§ã«ãªã£ãŠããŠããç¶æ³ã§ãã
ä»å¹Ž2017幎ã«ãããŠãVue.js åšãã®ãšã³ã·ã¹ãã ã®æ¡å€§ããåºæ¥äºã§äžçªå€§ããã®ã¯ãStorybook v3.2 ã§ Vue.js ããµããŒãããããšã§ãããã
Storybook ã¯ã³ã³ããŒãã³ããšãã£ãUIéçºç°å¢ãæäŸããããŒã«çãªãã®ã§ãããReact.jsãRaact Native ãšãã£ã React é¢é£ã®ã®ã¿ãããµããŒãããŠããŸããã§ãããåæ§ãªãã®ãšããŠãvue-playããããŸãããäœè ã®egoistæ°ã vue-play ã«å¯ŸããŠæŽ»åãã¢ã¯ãã£ãã§ã¯ããããStorybook ãšåçã®ãã®ãå©çšã§ããç¶æ ã§ã¯ãããŸããã§ããã
ãããªäžãäžèšã® Issue æçš¿ãããã£ãã«ãStorybook ã§ Vue.js ããµããŒãããããã« Storybook ã®ã¡ã³ããŒãšãã£ããã«èªåãéçºãé²ããŠãªãªãŒã¹ã§ããããšã¯ã倧å€ãšããµã€ãã£ã³ã°ã§ãã£ãããVue.js ãŠãŒã¶ãŒã Storybook ã䜿ã£ãŠå¹ççãªã³ã³ããŒãã³ãéçºãå¯èœã«ãªãã®ã¯ãéçºäœéš(DX: Development Experience)ããããªããããVue.js ã«ãšã£ãŠã倧å€è¯ãããšã§ãã
ä»åã®å¯Ÿå¿ã¯ãStorybook ã Vue.js ã«ãšã£ãŠãã©ã¡ããšã Win-Win ã«ãªããŠãåæ¹ã®ãšã³ã·ã¹ãã ãæ¡å€§ã§ããåºæ¥äºã§ãã£ãããšã«ééããªãã§ãããã
ããã«æé·ããã³ãã¥ããã£
Meetup
å»å¹Ž 2016 幎ãVeu.js ã®æé·ã«äŒŽãã³ãã¥ããã£ãããªãæé·ããŸããããä»å¹Ž 2017 幎ã¯å»å¹Žãããããã«ã³ãã¥ããã£ãæé·ããŠããŸãã
äžçèŠæš¡ã® Meetup ã€ãã³ããµãŒãã¹ã®Meetupããã®ã¯ãšãªã§æ€çŽ¢ãããšããªãã®æ°ã®ã³ãã¥ããã£ã°ã«ãŒããèŠã€ãããMeetup ã€ãã³ããéå¬ãããŠããŸãã
æ¥æ¬ã§ã¯ãä»å¹Žã¯èªåãäž»å¬ãã Vue.js æ¥æ¬ãŠãŒã¶ãŒã°ã«ãŒãäž»å¬ã«ãã Meetup ã€ãã³ãã 4 åéå¬ããŸããã
Vue.js Tokyo v-meetup="#3" (åå ç³ãèŸŒã¿æ°: 251)
Vue.js Tokyo v-meetup #4 (åå ç³ãèŸŒã¿æ°: 294)
Vue.js Tokyo v-meetup #5 (åå ç³ãèŸŒã¿æ°: 243)
Vue.js Tokyo v-meetup #6 (åå ç³ãèŸŒã¿æ°: 270)
ä»å¹Ž 2017 幎ã«å ¥ã£ãŠãããåžžã«åå ç³ã蟌ã¿(connpassã®ç®¡çããã·ã¥ããŒãã§ç¢ºèªã§ããçµ±èš)ã 200 ãªãŒããŒããŠãããããæè¿éå¬ããã Vue.js Tokyo v-meetup #6 ã§ã¯ãç³èŸŒã¿åä»éå§ãã 13 åã§å®å¡ã«ãªã£ãŠããŸãã»ã©ã®ç¶æ³ã§ãã(ãã®ããã«ã€ãã³ãåå åçãé«ãç¶æ³ã«ãªã£ãŠãããä»åŸãVue.js æ¥æ¬ãŠãŒã¶ãŒã°ã«ãŒãã¹ã¿ããäžåãäžäººã§ãå€ãã®æ¹ãåå ã§ããããã«åªåããŠããããã§ãð)
connpassã§ãããŒã¯ãŒãVue.jsãæå®ããŠã€ãã³ãæ€çŽ¢ãããšæããã« 2016 幎ãšã2017 幎ãšã§ã¯ãæ€çŽ¢ã«ã²ã£ãããã€ãã³ãæ°ä»å¹Ž 2017 å¹Žã®æ¹ãå§åç匷ãã§ãã
2016 å¹Žã®æ€çŽ¢ã¯ãšãª
2017 å¹Žã®æ€çŽ¢ã¯ãšãª
ãã£ãã
ä»å¹Ž 2017 幎㮠6 æãVue.js ãå ¬åŒã§éå¶ãããã£ããããgitter ãã discord (Vue Land) ã«éå¶ãç§»è¡ããŸãããdiscord ã¯ã以äžã®ãã㪠slack ã©ã€ã¯ãªãã£ãããµãŒãã¹ãšãªã£ãŠããããããã£ã³ãã«ã§è©±ããããããã¯ãã°ã«ãŒãåã§ãããããgitter ããããªãããã§ããDiscord ã«ç§»è¡ããŠãããããã«ãã£ããã«ããã³ãã¥ãã±ãŒã·ã§ã³ã¯æŽ»çºã«ãªã£ãŠããŸãã
æ¥æ¬ã«ãããŠã¯ãå»å¹Ž 2016 幎éèšãã Vue.js æ¥æ¬ãŠãŒã¶ãŒã°ã«ãŒããå ¬åŒã«éå¶ãã Slack ããããŸãããå»å¹Žã®åãææã§ã¯ç»é²è æ°ã 212 人ã ã£ãã®ããä»å¹Ž 2017 幎ã®ãã®èšäºå·ç段éã§ã¯ 1000 人ãè¶ ããç¶æ³ã§ãæ¥æ¬ã slack ãéããŠã³ãã¥ãã±ãŒã·ã§ã³ã掻çºã«ãªã£ãŠããŸãã
Vueã®æ¥æ¬ãŠãŒã¶ãŒã°ã«ãŒãã®slackã1000ã«éãããð pic.twitter.com/bnK381ddqL
â ð€kazuya kawaguchið€ (@kazu_pon) December 15, 2017
åã®å ¬åŒã«ã³ãã¡ã¬ã³ã¹éå¬
ä»å¹Ž2017幎㮠Vue.js ã«ãããæå€§ã®åºæ¥äºãšããŠã¯ããªããšãã£ãŠããåã®å ¬åŒã«ã³ãã¡ã¬ã³ã¹ VueConf 2017 ãéå¬ãããããšã§ãããã
å ¬åŒã«ã³ãã¡ã¬ã³ã¹ã®ãµã€ããèŠãŠããããã°åãããšæããŸãããã³ã¢ããŒã ãšååéã®ã¹ãã·ã£ãªã¹ããéçµãã豪è¯ã¹ããŒã«ãŒã«ããã«ã³ãã¡ã¬ã³ã¹ã§ãã
åã¹ããŒã«ãŒã®çºè¡šã¯ãYouTube ã§åç»ãå ¬éãããŠããã®ã§ãèå³ããæ¹ã¯ããã¡ãã®åç»äžèЧããèŠãŠã¿ããšè¯ãã§ãããã
ãŸãããã®ã«ã³ãã¡ã¬ã³ã¹ã«ãã³ã¢ããŒã ã® ktsn ãããåå ããŠã¬ããŒãèšäºãæžããŠããã®ã§ãã©ããªæãã ã£ãã®ãé°å²æ°ãã€ããããšãã§ãããšæããŸãã
Vue.js ã®ä»åŸ
ãããŸã§ã«ä»å¹Ž2017幎 Vue.js çéã«ãããç¶æ³ãåºæ¥äºããŸãšããŠããŸãããç¹ã« Vue.js ã®ã¡ãžã£ãŒããŒãžã§ã³ã®ãªãªãŒã¹ã¯ãããŸããã§ãããã4ã€ã®ãªãªãŒã¹ãçµãããšã§ãVue.js 㯠Progressive ã«çå®ã«é²åããŠããŸããã
Vue.js ã¯çŸåšãã³ã¢ããŒã ããããŠã³ãã¥ããã£ããŒãããŒã®äœå¶ã§ Vue.js æ¬äœããVue Router ã Vuex ãªã©ã®å ¬åŒã§æäŸããé¢é£ã©ã€ãã©ãªéçºããããã¥ã¡ã³ãã®ã¡ã³ããã³ã¹ã翻蚳ããã㊠Vue.js ãåãå·»ã Nuxt.jsãStorybook ã®ãããªãšã³ã·ã¹ãã ãšé£æºããã£ãп޻åããŠããŸãã
Vue.js ãããžã§ã¯ãããŒãããã
ãããªäžã2017幎9æ26æ¥ã« HashNode ã§ Vue.js ã³ã¢ããŒã ã«ãã AMA (Ask Me Anything: äœã質åãã?) ãéå¬ããŸããããã®äžã§ãVue.js ã³ãã¥ããã£ãŠãŒã¶ãŒãã Vue.js ã®ä»åŸã«ã€ããŠãããããšè³ªåãšåçã®ããåãããã£ãåŸãå°æ¥ã«åããããŒãããããå ¬éãããŸããã
ããŒããããã®å 容ã«ã€ããŠã¯ãVue.js Tokyo v-meetup #6 ã§ç§ã®çºè¡šããäžèšã®ã¹ã©ã€ãã§ç¢ºèªããããšãã§ããŸãããŸãåç»ãå ¬éãããŠããã®ã§ããã¡ãã§ã確èªã§ããŸãã
ãã®ããŒãããããããŒã¹ã«ãVue.js ã®ãããžã§ã¯ããšã㊠Evan æ°ãçé ã«ã³ã¢ããŒã ã®åã¡ã³ããŒã«ãã£ãŠãããã¥ã¡ã³ãã®æ¹åãé¢é£ã©ã€ãã©ãªãªã©ã®éçºãé²ããããŠããç¶æ³ã§ããæ¥å¹Ž2018幎ãåŒãç¶ããã³ã¢ããŒã äœå¶ã§ããŒããããã«åŸã£ãŠã³ãã¥ããã£ããŒã¹ã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ããšããŠé²ããŠããã§ãããã
2018 幎ã®ã«ã³ãã¡ã¬ã³ã¹
2018幎ãä»å¹Žä»¥äžã«ã«ã³ãã¡ã¬ã³ã¹ãäºå®ãããŠããŸããçŸæç¹ã§ä»¥äžãäºå®ãããŠããŸãã
Vue.js Amsterdom: 2018幎2æ16æ¥
VueConf US: 2018幎3æ26æ¥ã2018幎3æ28æ¥
Vue.js London: 2018幎4æä»¥éäºå®
VueConf EU: 2018幎9æäºå®
Vue.js Conference Japan (ä»®): 2018幎7ææ«ã8æåæ¬ã§èª¿æŽäž
çŸåšèª¿æŽäžã§ãããæ¥æ¬ã§ãéå¬ããããã«ãVue.js æ¥æ¬ãŠãŒã¶ãŒã°ã«ãŒãã¹ã¿ããã§ä»é²ããŠããŸããæµ·å€ããã Evan æ°ãçé ã«ãã³ã¢ããŒã ãVue ã³ãã¥ããã£ããŒãããŒã®æ¹ãåŒãã§ãå ¬æŒããŠããããã調æŽäžã§ããæ¥å¹Ž2018幎æ©ã ãã«ã³ãã¡ã¬ã³ã¹å°çšãµã€ããå ¬éããäºå®ã§ãã®ã§ã楜ãã¿ã«ããŠé ããã°ãšæããŸãïŒ
ãããã«
Vue.js #1 Advent Calendar 2017 ã®æçµæ¥ããããŠ4ã€ã®ã¢ããã³ãã«ã¬ã³ãã®åããŸãšããšããŠãVue.js ã®çµ±æ¬çãªå å®¹ãæžããŸãããããããã§ããã§ããããïŒ
2018幎ãåŒãç¶ããVue.js ã³ã¢ããŒã ã®ã¡ã³ããšãšãã«ã
We are on a mission to help more frontend devs enjoy building apps for the web
ãšãããVue.js ã®ããã·ã§ã³ã«åŸã£ãŠãWeb ããã³ããšã³ãéçºè ã®éçºäœéšãããããããã«ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®æŽ»åã«åãçµãã§ãããŸãã®ã§ã®ããããããé¡ãããŸãã
ããã§ã¯ãã¿ãªããããã幎ã!
2016 IN REVIEW
2016幎æ¯ãè¿ã£ãŠã¿ãŸããã
GitHub ã®è (contributions)
2016幎ã®èã¯ãããªæããªã£ããæ¯èŒã®ããã«2015幎ã®èãèŒããŠããã
2016 GitHub contributions
2015 GitHub contributions
contributions 㯠3379 ã§æ°ãã€ããã365æ¥å šéšåãŸã£ãŠããã
ãŸããã»ãšãã© Vue.js ã® OSS ã«ããæŽ»åãã»ãšãã©ãGitHubãä»å¹Žãã private 㪠contributions ã衚瀺ã§ããããã«ãªã£ãã®ã¯ãã¡ãããã¬ãã¥ãŒããã®ã contributions ã«æ°ããããããã«ãªã£ãã®ã§ãããªãèçãããããªã£ãŠããã®ããããããããªãã
contributions ã¯å»å¹Žã® 5216 ãšæ¯ã¹ããšä»å¹Žã¯æžã£ãŠãããã©ãããã¯ä»å¹Žã¯æ¥åã®éçºãèœã¡çããŠæ°èŠéçºã®ããã«ã¬ãªã¬ãªã³ãŒãæžãéçºããªãã£ããšããæãã§ããããã(ä»äºããŠããªããšããæå³ã§ã¯ãªãã)
ã€ãã³ãã§ã®çºè¡š
ä»å¹Žã¯ 9 ä»¶ ãçºè¡šããã詳现ã¯ä»¥äžãªæãã
Vue.js å€§èŠæš¡ã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯
ã€ãã³ã: Gotanda.js #2 ãJSæ°å¹ŽäŒã in Gaiax
Vue.js Recent Trends
ã€ãã³ã: NodeåŠå 20æéç®
Vue.js New Team
ã€ãã³ã: ããã³ããšã³ã LT & 座è«äŒïŒfreee x ã¿ããªã®ãŠã§ãã£ã³ã°ïŒ
Next Vue.js 2.0
ã€ãã³ã: Gotanda.js #4 in Retty
conventional-changelog
ã€ãã³ã: NodeåŠå 22æéç®
The Progressive framework
ã€ãã³ã: Gotanda.js #5 in TORETA
èªåãäœã£ããã®ãèŠããŠã¿ãã
ã€ãã³ã: Ginza.rb 第40å èªåã®äœã£ããã®ãã¿ããŠã¿ãã
Vue.js 2.0 Server Side Rendering
ã€ãã³ã: æ±äº¬NodeåŠåç¥2016
FDD ã«ãã Vue.js ã³ã³ããŒãã³ãéçº
ã€ãã³ã: Gotanda.js #6 in Oisix
ä»å¹Žã¯ãã£ã¡ãçã£ãããã«çºè¡šãããéæããŒã¹ã§çºè¡šããŠããããªæ°ããããVue.js ã®ã³ã¢ããŒã ã«ãå ¥ã£ããããã®ããã£ãŠæ å ±å ±æããããŠããšã«ããçºè¡šãããã£ããã§ãããã
ä»å¹Žã®çºè¡šã®äžã§äžçªã®å°è±¡ã«æ®ã£ãŠããã®ã¯ããã¯ãæ±äº¬NodeåŠåç¥ã«ç»å£ããããšãCFPã§ãŸããæ¡çšããããšã¯æã£ãŠããªãã£ãã®ãšãåããŠå€§ããã«ã³ãã¡ã¬ã³ã¹ã§ã®çºè¡šã¯å°ãç·åŒµãããåçç¹ãšããŠã¯äžèº«ãããã¡ãã£ãšããŒãã°ããã£ããªããšãã¡ã€ã³ã®ãµãŒããµã€ãã¬ã³ããªã³ã°ã«ã€ããŠæåŸã蟺é§ãè¶³ã«ãªã£ãŠããŸã£ãŠãæ¥ãŠé ããæ¹ã«ç³ãèš³ãªãã£ããªããšãåçããããã®çºè¡šã§ãããã倧ããã«ã³ãã¡ã¬ã³ã¹ã§çºè¡šã§ããã®ã¯ããçµéšã«ãªã£ããšæããŸãã
ã€ãã³ãäž»å¬
Vue.js æ¥æ¬ãŠãŒã¶ãŒã°ã«ãŒãã® organaizer ãšããŠä»å¹Žã¯ä»¥äžã® 2 ä»¶éå¬ããŸããã
Vue.js Tokyo v-meetup="#1"
Vue.js Tokyo v-meetup="#2" ç¥ 2.0 ãªãªãŒã¹èšå¿µ
ã€ãã³ãã®éå¶ã¯ãéå¶ã¡ã³ããŒãšäºåã«ãã£ãã飲ã¿ç©ã®æé ãæ®µåãçããŠèšç»çã«ã§ããã®ã§ããã人éããããŸãã§ããŠããªãã£ããªããšæã£ãŠããŸãããã®èŸºã¯ä»ã®ã€ãã³ãéå¶ãåèã«ããŠä»åŸãæ¹åããŠãããããšããã§ããéå¬ããã€ãã³ãã¯ãVue.js äœè ã® Evan æ°ã«åå ããŠããã£ããããŠçãäžãã£ãã®ã§ãåå ãããæ¹ã«æ¥œããã§ããããŠçµæçã«ã¯ããã£ãã§ãã
#vuejs #vmeetjp1 Q & A session With Evan You pic.twitter.com/DBlaFswOgF
â ð€kazuya kawaguchið€ (@kazu_pon) 2016幎5æ31æ¥
OSS 掻å
å ã® GitHub ã® èã«çµæãšããŠçŸããŠããããã«ãä»å¹Žã¯ OSS ã®æŽ»åã¯ããªãã¢ã¯ãã£ãã§ããã
ãããŸã§ Vue.js ã® vue-validator ã®ã¡ã³ãããšã㊠orgnaization ã®ã¡ã³ããŒãšããŠæŽ»åããŠããŸãããã3æããã³ã¢ããŒã ã¡ã³ããŒãšããŠæ£åŒã«æŽ»åããããã«ãªã£ãŠãããããªãã¢ã¯ãã£ãã«ãªããŸãããã
äžã§ã倧ããã®ã¯ãVue 2.0 ããŒã³ãã«åããéçºãå€åœç±ãªããŒã ã¡ã³ããŒã§äžäœã«ãªã£ãŠåããŽãŒã«ã«åãã£ãп޻åã§ããã®ã¯éåžžã«ãšããµã€ãã§ãããVue.js ãä»ãŸãã«æ¥æé·ããŠããäžã§ããããã£ãçµéšãã§ããã®ã¯ãçãŸããŠã¯ããå»ãã OSS ã«ãããŠã¯äžã ã§ããªããšæãã®ã§ã貎éãªäœéšãããŠãããã ãªããšå®æãããããŸãã
ãã ãæ®å¿µãªããšããã£ãŠãèªåãã¡ã³ãããŠãã vue-validator ãå šç¶éçºãªãœãŒã¹ãå²ãããšãã§ããªããªã£ãŠããŸã£ãããšããŠãŒã¶ãŒã«ã¯å€§å€ç³ãèš³ãªããšæã£ãŠããŸãã
å·ç掻å
ä»å¹Žã¯ãæè¡è©è«ç€Ÿããã®Webèšäºé£èŒã§ãå·ç掻åããŸããã
Vue.jså ¥é âæéã§äœãã·ã³ãã«ãªWebã¢ããªã±ãŒã·ã§ã³
倧ææè¡ã¡ãã£ã¢ã§ã®èšäºå·çã¯åããŠã§ããããå·çãããŠé ããŠéåžžã«ããçµéšãããŠé ãããšæã£ãŠããŸããæ±ºããããé£èŒåæ°ãšæåæ°ãšããå¶éç°å¢ã§ã®èšäºå·çãšãããŠèšäºã®äŒç»ãããã°ãè«æãšã¯éã£ãŠèªè ãæèããå·çæ¹æ³ã«ã€ããŠã¯éåžžã«å匷ã«ãªã£ããšæã£ãŠããŸãã
ä»äºé¢ä¿
ä»å¹ŽãåŒãç¶ããCTO ãšããŠäŒç€Ÿã®ã·ã¹ãã å šè¬ããªãŒãããªããéçºã«æºãã£ãŠããŸãã
å»å¹Žã®ãã®ææããŸãã«é²ãã§ãããããžã§ã¯ãã§ã¯ãéçºèšç»(ããŒãããã)ãäºç®èšç»ãéçºããŠãããããã¯ãã®ãã©ã€ã·ã³ã°(äŸ¡æ Œèšå®)ããŠããææã§ãããèªåãšããŠã¯ãCTO ãšããŠãããã£ãããšãåããŠã ã£ãã®ã§ãç¡äºãããžã§ã¯ããæåã§ãããã©ããäžå®ã§ããããç¡äºååŒå ãšãããã¯ãã®å¥çŽãããããšãã§ãããŒã³ãã§ããã®ã§ããã£ããšæã£ãŠããŸãã
ãã®ä»ãšããŠãCTO ã®æ ãè¶ ããŠããŸãããCFO çãªçµå¶äŒç»ã®åœ¹å²ã®ä»äºãçŸåšãã£ãŠãããäŒç€Ÿã®äºç®ãèšç»ããããã£ã·ã¥ãããŒåšããèŠããããŠããéåšããçŸç¶ãã£ãŠããŸãã
ãã©ã€ããŒã
第2åãèªçããŸããïŒð¶
æ¥å¹ŽåºŠã«ãã㊠(ãŸãšã)
ä»å¹Žã¯ãOSS ã®æ¹ã¯å»å¹Žã«åŒãç¶ã Vue.js ã«æ²¡é ããŸããã2.0ããŒã³ãã«è²¢ç®ããããšã¯ãã¡ãããOSS ã®æŽ»åã®ãããã§å¯æ¬¡çãªã¢ãŠãããããšããŠããŸããŸãªã€ãã³ãã§ããããçºè¡šããŸãããä»äºã®æ¹ã¯ãCTO ã¯ãã¡ããããã«CFOçãªç«å Žã§ä»äºããããšã§ãã£ãªã¢ãçµéšããŠããŸããã
æ¥å¹ŽåºŠã§ãããä»äºã®æ¹ã¯ãä»é²ããŠãããããžã§ã¯ãã¯åŒãç¶ããã¡ãããä»åºŠã¯äººã®æ¡çšãšããã«äŒŽã瀟å ç°å¢ã®æŽåãå¿ èŠã«ãªã£ãŠããã®ã§ãããã«åããåãçµã¿ãé 匵ã£ãŠããããã§ããå»å¹Žåæ§ããã¯ãããžãŒã«ã³ãããŒãšããŠãšã³ãžãã¢ã幞ãã«ãªãããããªç°å¢ãç®æããŠã
OSS ã®æ¹ã§ãããçŸç¶ã® Vue.js ã®æé·å ·åãããæ¥å¹ŽåºŠã¯ Vue.js ã®ã³ã³ããªãã¥ãŒãã«éäžããããšæããŸãããã¡ãããVue.js Meetup ã€ãã³ãã®éå¬ãããã ãã€ãã³ãã§ã®çºè¡šã«ã€ããŠã¯ãå°ãæ§ããããšæããŸããvue-validator ã®åçããããã§ããªã®ã§ãVue.js ã³ã¢ããŒã ãšããŠéçºã®æ¹ã«éäžããããšæããŸãã
ããã§ã¯ãçæ§ãè¯ãã幎ããæ¥å¹Žããããããé¡ãããããŸãã
Vue.js 2016幎ãŸãšã & ä»åŸ
ãã®èšäºã¯ãVue.js Advent Calendar 2016ã®25æ¥ç®æåŸã®èšäºã§ãã
ããã³ããšã³ãçéã®æè¡ãããæè¿äœã鲿©ããŠããªããšèšãããŠãŸãããVue.js ã§ã¯ä»å¹Ž2016幎ã¯ãããããšããæ¿åã§ããã
ãã㪠Vue.js çéã«ãããåºæ¥äºã Vue.js ã³ã¢ããŒã ã¡ã³ã & Vue.js æ¥æ¬ãŠãŒã¶ãŒã°ã«ãŒãã® orgnaizer ã®ç«å Žã§ãŸãšãã€ã€ãæåŸã« Vue.js ã®ä»åŸã«ã€ããŠå°ã話ããŠãVue.js Advent Calendar ã®æåŸãç· ãããããããšæããŸãã
2.0 ãªãªãŒã¹ïŒ
äžçªã®å€§ããªåºæ¥äºãšãã£ããããã¯ããVue.js 2.0 ã®ãªãªãŒã¹ã§ãããïŒ
Behold! Vue 2.0 is officially out! https://t.co/OVgGo4epCO
â Vue.js (@vuejs) 2016幎9æ30æ¥
ä»å¹Žã®4ææ«ã«Vue.jså ¬åŒããã°ã§ããããã 2.0 ãåºãã!ãçãªçºè¡šãããŠåœåã¯ä»å¹Žã®6æäžæ¬ã®ãªãªãŒã¹ãããäºå®ã§ããããå°ãVue.jsã®ãŠãŒã¶ãŒã«ã¯åŸ ãããŠããŸããŸããããä»å¹Žã®8æã«RCããŒãžã§ã³ãã¢ããŠã³ã¹ããä»å¹Ž10æ1æ¥ã«ç¡äºãªãªãŒã¹ãšãããªãªãŒã¹ã®ããŒããæ©ã¿ãŸããã
Vue 2.0 ã§ã®æè¡çãªäžçªã®ç®çã¯ãVirtual DOM ã®æ¡çšã§ãããããŸã§ã®ããŒãžã§ã³1.x ãŸã§ã¯ãçã® DOM ããŒã¹ã«ããã¬ã³ããªã³ã°ã§ãããã2.0 ã§ã¯ Virtual DOM ãæ¡çšããŠã¬ã³ããªã³ã°åšããå·æ°ããŸãããããã«äŒŽãå¹èœãšããŠãããã©ãŒãã³ã¹ã®æ¹åã¯ãã¡ãããªã®ã§ãããåŸæ¥ã§ã¯é£ããã£ããµãŒããµã€ãã¬ã³ããªã³ã°ãåºæ¥ãããã«ãªããHTMLãã³ãã¬ãŒãã«ãã宣èšçãªã¬ã³ããªã³ã°ã ãã§ãªããHyperScript/JSXã«ããåœä»€çãªã¬ã³ããªã³ã°ãå¯èœã«ãªã£ãŠã¬ã³ããªã³ã°ææ®µãæè»ã«ãªãããã㊠React Native ãšåæ§ã«ã¯ãã¹ãã©ãããã©ãŒã 察å¿ãšãã颚ã«ãVue.js ãšããŠæ§ã ãªå¯èœæ§ãåºããããããã«ãªããŸããã
2.0 ãªãªãŒã¹åŸãæ§ã ãªãã°ä¿®æ£ãæ©èœæ¹åãªã©çµãŠããã®èšäºå·çæç¹ã§ã¯ 2.1.7 ãææ°ããŒãžã§ã³ãšãªã£ãŠããç¶æ³ã§ãã
ã¡ãªã¿ã«ãVue.js ã¯ã³ãŒãããŒã ãã¢ãã¡ã®ãã®ããä»ããããããšã§æåã§ãããä»å¹ŽãªãªãŒã¹ããããã®ã®ã³ãŒãããŒã ã¯ä»¥äžã®ãšããã§ãã
2.0: Ghost in the Shell (æ»æ®»æ©åé)
2.1: Hunter X Hunter
ççºçãªæé·
äžèšã®Vue.jså ¬åŒTweetãããåããããã«ã2016å¹Žã¯æ¥éã«æé·ãããšãèšããã§ãããïŒ
âŠand we thought 2015 was an explosive year! pic.twitter.com/Dn1UsDQRgw
â Vue.js (@vuejs) 2016幎12æ19æ¥
2015幎4æã« PHP Web ã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ "Laravel" ã« Vue.js ãæšæºæèŒã決å®ããã®ãæ©äŒã« Laravel ã³ãã¥ããã£ã®éã§æ®åããŠæé·ããŠãããŸããããä»å¹Ž 2016幎ã¯ãã以äžã«æ¥éã«æé·ããŸããã
GitHub ã® star ãä»å¹Ž1æåãã«ã¯ 10K ã¡ãã£ãšã ã£ãã®ãããã®èšäºå·çæç¹ã§ã¯ã37K è¶ ããšããç¶æ³ã«ãªã£ãŠããŸãã
ä»ã« Vue.jså ¬åŒãµã€ãã®ããŒãžãã¥ãŒæ°ãNPM ããŠã³ããŒãæ°ãªã©ã®æ°å€çãªãã®ã¯ãä»å¹Žã®8æã®ãã®ã§ã¡ãã£ãšå€ãã§ãããVue.js å ¬åŒããã°ã®ãã¡ãã«ãããŸãã(ææ°ã®æ°å€çãªãã®ã¯è¿ã Evan æ°ãã¬ãã¥ãŒçãªããã°ã§å ¬éãããšæããŸãã远èš: å ¬åŒããã°èšäºå ¬éãããŸããã)
ä»å¹Žããã ãæé·ããèŠå ã¯ããããŸã§ã«èªåèªèº«ãTwitterãGitHub ãªã©ã® SNSãWeb ã¡ãã£ã¢ããã㊠Vue.js ã³ã¢ããŒã ã¡ã³ããŒå ã®ããåããèŠãŠããæããããããšãèæèŠã§ãµãã£ãšããæãã«ãªããŸããã以äžãèŠå ãªã®ã§ã¯ãªãããšèããŠããŸãã
1. Evan æ°åºèº«ã®äžåœã® JavaScript ããã³ããšã³ããŠãŒã¶ãŒã®éã§ã¯ã»ãšãã©å©çšããŠããããš
10åãªãŒããŒã®äººå£ãæã€äžåœããã®æ°ã®ãã¡ã®0.1%ãããã³ããšã³ããšã³ãžãã¢ããããšããŠãã100äžåŒ·ã®ãªãŒããŒãªã®ã§ãGitHub ã® start ã®æ°ãNPM ã®ããŠã³ããŒãæ°ãããŒãžãã¥ãŒæ°ã«äžãã圱é¿ã¯å端ãªããšèããŠããŸããã¡ãªã¿ã«ãEvan æ°ãä»å¹Žã®äžåœã§ã®ä»å¹Žã®JSConfã®æã«ã©ãã ã Vue.js ã«ã€ããŠå©çšç¶æ³ã«ã€ããŠå ¬æŒæã«èŽè¬è ã«èãããšãããã€ãã³ãåå è ã»ãŒå šå¡å©çšããŠãããšã®ããšã§ãã
2. Evan æ°ãä»å¹Žããªãã®æ°ã®ååœã® JavaScript ã³ãã¥ããã£ã®ã€ãã³ãã«ç»å£ããããš
Evan æ°ã¯ä»¥äžã§åæããã¹ã©ã€ãã®æ°ã ããä»å¹Žã¯ããªãã®æ°ã®ååœã® JavaScript ã³ãã¥ããã£ã«ã€ãã³ãã«ç»å£ããŠããã®ã§ãPR ã«ãªã£ããã§ã¯ãªãããšæããŸãã
ã¹ã©ã€ã
Laracon US: Vue.js Make Frontend Development Great Again!
Laracon EU: Modern Frontend Development with Vue.js
Midwest JS: Vue.js: The Progressive Framework
NingJS: Vue.js: the Past and the Future
Nordic.JS: Demystifying Frontend Framework Performance
dotJS: Reactivity in Frontend JavaScript Frameworks
çºè¡šåç»
Laracon EU: Modern Frontend with Vue.js
Midwest JS: Vue.js: the Progressive Framework
NingJS: Vue.js: the Past and the Future
Nordic.JS: Demystifying Frontend Framework Performance
dotJS: Reactivity in Frontend JavaScript Frameworks
3. Web ã¡ãã£ã¢ã§èšç»çã« PR ãããããš
Twitter ã§ã¯ Vue.js é¢é£ã®ããŒã¯ãŒãããŠãªããããŠãªãã€ãŒã/ã³ã¡ã³ããããããŠæ¥ã ãã¡ã«å¯Ÿå¿ããŠããã®ãšãã¡ãžã£ãŒãªãªãŒã¹ã«ãããŠãšãã¯ãããã°èšäºã¯ãã¡ãããå¿ ã HackerNews ã Reddit ã«æçš¿ãããããŠããªãæèçã« PR ããŠãããã§ã¯ãªãããšæããŸãã
Evan æ°ã® Vue.js ãã«ã¿ã€ã å
ä»å¹Žã¯ãEvan æ°ã Vue.js ã«ãã«ã¿ã€ã ã§éçºã§ããããã«ãªããŸãã!
Evan æ°ã¯ Meteor ã§åããŠããŸãããã2015 幎㮠Vue.js ã®æé·ã«äŒŽã Meteor ãèŸããŠèªåã®äŒç€Ÿãèšç«ããŸããããã®åŸãVue.js ãã«ã¿ã€ã éçºãè¡ãããã«ä»å¹Žã® 3 æã« Patreonã§ $6,000/manth ãç®æšã«æ¯æŽãåééå§ããŸããã
In particular: I have started a Patreon campaign seeking funding to focus on Vue fulltime. https://t.co/pukJfFk5eX
â Vue.js (@vuejs) 2016幎3æ14æ¥
åééå§åŸãä»å¹Žã® 6 æã«ã¯ã3 ã¶æè¶³ããã§ ç®æšã® $6,000/month ã«ãã£ãšããéã«éæããŠãçŸåšã§ã¯ $9,000/month ä»¥äž Patreon ã§æ¯æŽãåããŠããŸãããŸããæè¿ Alibaba ã®Weex ãããžã§ã¯ãã®æè¡é¡§åã«ãªããWeex ãããžã§ã¯ãã®éçºã«ãã³ãããã¡ã³ãããŠããç¶æ³ã§ãã
ã³ã¢ããŒã ã«ãã Vue.js OSS éçº
ä»å¹Žã¯ãã³ã¢ããŒã ã¡ã³ããŒäœå¶ã«ãã Vue.js OSS éçºãæ£åŒéå§ããŸãã!
åŸæ¥ vue.js ã®éçºã¯ãVue.js orgnaization ã¡ã³ã㌠6 åã§ Vue.js ãããžã§ã¯ããæŽ»åããŠããã®ã§ãããåºæ¬ã¯ Evan æ°ãäžå¿ã«ãVue.js æ¬äœãé¢é£ãã©ã°ã€ã³ãããã¥ã¡ã³ããã³ãã¥ããã£ãµããŒããã»ãšãã©äžäººã§ãã£ãŠããŸãããã§ããã2015 幎ã«å ã«èª¬æãã Laravel ã®æ¡çšã«äŒŽãæ¥éãªæé·ã«äŒŽããå©ããå¿ èŠã«ãªã£ãŠããŸãããããã§ãä»å¹Žã® 3 æã® Patreon ã«ããæ¯æŽã®éå§ãšãšãã«ãEvan æ°ãã³ã¢ããŒã çšã® Slack ãç«ã¡äžããåœ¢ã§æ£åŒã« Vue.js ã³ã¢ããŒã ãããã¯ãªãããŸããã
ã³ã¢ããŒã ã¹ã¿ãŒãæã¯ã17åã®äœå¶ã§ã¹ã¿ãŒãããŸãããããã®åŸãã³ã¢ããŒã ã¡ã³ããŒã¯ã©ãã©ãå¢ããŠãã£ãŠãçŸåšã¯30å匱ã®äœå¶ã§æŽ»åããŠããŸããã³ã¢ããŒã ã¡ã³ããŒã¯ãã¢ã¡ãªã«ããã€ãããã©ã³ã¹ãã€ã®ãªã¹ããã·ã¢ãã€ã³ãããããã ãäžåœãæ¥æ¬ãªã©ãšããããã«ã°ããŒãã«ãªå€åœç±ã¡ã³ããŒæ§æã«ãªã£ãŠããŸããã¡ãªã¿ã«çŸæç¹ã®æ¥æ¬äººã®ã³ã¢ããŒã ã¡ã³ããŒã¯ã
@kazupon (ç§)
@tejitak ãã
@ktsn ãã
@kaorun343 ãã
ã®4åãåšç±ããŠããŸãã
ã³ã¢ããŒã ã¡ã³ããŒã®åœ¹å²
ããŒã ã¡ã³ããŒã®åœ¹å²ãšããŠã¯ä»¥åã€ãã³ãã§çºè¡šãããã¡ãã®è³æã«èšèŒããŠããŸãããäž»ã«
GitHub Issues ã®ããªã¢ãŒãžã¥
ãã°ã¬ããŒãã®ãã§ã㯠(æ¬åœã«ãã°ãªã®ã?ãã åã®è³ªåã®ãªã®ã?)
æ°æ©èœèŠæãªã¯ãšã¹ãã®ãã§ã㯠(ãŠãŒã¹ã±ãŒã¹ã¯äœã®ã?ã¡ãªããã¯ããã®ã?)
æŸçœ®ããã Issues ã®ã¯ãªãŒãã³ã° (質ååŸ ã¡ããŠããŠãã¬ã¹ãã³ã¹ã5æ¥ä»¥å ã«æ¥ãªãå Žå)
Pull Request ã®ã¬ãã¥ãŒ
ãã°ä¿®æ£ãŸãã¯æ°æ©èœã®å®è£
ä»ã®ã³ã¢ããŒã ã¡ã³ãã®ãµããŒã
ãã©ãŒã©ã ãŸãã¯Gitterã®ã³ãã¥ããã£ãµããŒã
ã®ãããªããšãã㊠Vue.js ã OSS ãšããŠéçšã»éçºããŠããŸãã
ã³ã¢ããŒã ã¡ã³ããŒã®éçºäœå¶
éçºäœå¶ãšããŠã¯ãç¹ã«ææåãããã®ã¯ãªãã®ã§ããã倧å㯠Evan æ°ã§ä»æ§çå®ãå®è£ ããã°ä¿®æ£ã¯ããŠããã®ã§ãããã³ã¢ããŒã ã¡ã³ããèªäž»çã«ãã°ä¿®æ£ãæ©èœæ¹åã¯ãã¡ãããããŒã«ãªã©ãäœæãªã©ãããããšã§ãEvan æ°ããããŸã§å šãŠãã£ãŠããããšãåŸã ã«è² è·åæ£ããã圢ã®éçºäœå¶ã«ãªã£ãŠããŠããŸãã
ä»å¹ŽãªãªãŒã¹ãã Vue 2.0 ã®ãããªå€§ããéçºã®ã±ãŒã¹ãäžãããšã仿§çå®ã»å®è£ 㯠Evan æ°ã倧æ¹ãã£ãŠ pre-alpha ãªç¶æ ãŸã§éçºããAPI ã®äºææ§ãªã©ã®ä»æ§ãäžäººã§æ±ºããããªãå Žåã¯ãã³ã¢ããŒã ã¡ã³ãå éšã§è°è«ããŠããã®åŸ GitHub ã® issue ãšããŠå ¬éããŠããŠãŒã¶ãŒãããã£ãŒãããã¯ãåŸããããªã¹ã¿ã€ã«ã§éçºããŠããŠããŸããpre-alpha ãªãªãŒã¹åŸã¯ãåŒãç¶ãè¶³ããªãæ©èœãªã©ã®å®è£ 㯠Evan æ°ãå®è£ ããåäœãã¹ããå ¬åŒãµã€ãã®ããã¥ã¡ã³ãæŽåããã€ã°ã¬ãŒã·ã§ã³ããŒã«ããã㊠TypeScript 察å¿ã¯ã³ã¢ããŒã ã¡ã³ããŒãèªäž»çã«åãçµãã§éçºããŠãã£ããšããç¶æ³ã§ãã
ãšã³ã·ã¹ãã ã®æé·
Vue.js åšãã®ãšã³ã·ã¹ãã ãåŒãç¶ãæé·ãç¶ããŠããŸã!
vue-awesomeãå ¬éãããŠä»¥éãããã« Vue.js é¢é£ã®ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªãããŒã«ãªã©ãç»é²ãããŠãšã³ã·ã¹ãã ã圢æãããŠæ¥ãŸãããã2.0 ã®ãªãªãŒã¹ä»¥éãåŒãç¶ãæé·ããŠããŸããããŒãžã§ã³ 2.0 ãªãªãŒã¹ä»¥éãçŸåšã¯ä»¥äžã®ãããªãã®ã泚ç®ãããŠããŸãã
Weex: Vue.js ã®ã·ã³ã¿ãã¯ã¹ã§ Web ã ãã§ãªã iOS/Android ãšãã£ã Native åããžã®ã¢ããªãéçºã§ããã¯ã©ã¹ãã©ãããã©ãŒã åãã®ãã¬ãŒã ã¯ãŒã¯
Nuxt.js: Next.jsã® Vue.js çã®ãµãŒããµã€ãã¬ã³ããªã³ã°ã«åãã® Web ã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯
vuelidate: model ããŒã¹ãªã·ã³ãã«ãªããªããŒã·ã§ã³ã©ã€ãã©ãª
eva.js: choo ãš elm architecture ã«ã€ã³ã¹ãã€ã¢ããã Web ã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯
Element: Web åãã® UI ããŒã«ããã
vuetify: Material Design ããŒã¹ã®ã³ã³ããŒãã³ããã¬ãŒã ã¯ãŒã¯
Quasar Framework: Vue.js ã®ã³ãŒãã§Nativeã®ãããªã¢ãã€ã«ã¢ããªãšã¬ã¹ãã³ã·ããªWebãµã€ããæ§ç¯ã§ãããã¬ãŒã ã¯ãŒã¯
翻蚳掻åã®æŽ»çºå
Vue.js ããã¥ã¡ã³ãé¢é£ã®ç¿»èš³ãäžçååœãéããŠæŽ»çºåããŠããŸã!
Vue.js å ¬åŒããã¥ã¡ã³ãã¯ãããŒãžã§ã³ 1.x ã®ãšãã¯ç¿»èš³ããå ¬åŒãµã€ãã«ãªã³ã¯ãããŠããã®ã¯ãæ¥æ¬èªãäžåœèªãã€ã¿ãªã¢èªãããããŸããã§ãããããŒãžã§ã³ 2.0 ã§ã¯ãæ¥æ¬èªãšäžåœèªã®ä»ã«ããã·ã¢èªãéåœèªã翻蚳ãããŠããå ¬åŒãµã€ãããåç §ã§ããããã«ãªã£ãŠããŸãã
In case you havenât noticed: Vue 2 docs are now also available in Chinese, Japanese, Russian and Korean, all contributed by the community! pic.twitter.com/DAXVMOpg0b
â Vue.js (@vuejs) 2016幎12æ15æ¥
Vue.js å ¬åŒããã¥ã¡ã³ãã®ç¿»èš³ã¯ãçŸç¶ä»ã«ããã©ã³ã¹èªãšãã£ãç¿»èš³ãæŽ»çºã§ãã
Vue.js å ¬åŒããã¥ã¡ã³ã以å€ã«ããvue-routerãvuexãvue-loaderãšãã£ãå ¬åŒãã©ã°ã€ã³ã»ããŒã«ã®ããã¥ã¡ã³ããæŽ»çºã«ç¿»èš³ãããŠç¶ããŠããŸãã
ã³ãã¥ããã£ã®æé·
Vue.js ã®ççºçãªæé·ã«äŒŽããã³ãã¥ããã£ãæé·ããŠããŸãïŒ
Meetup ã€ãã³ã
Vue.js ã®æé·ãšãšãã«ããŠãŒã¶ãŒã³ãã¥ããã£äž»å°ã® Meetup ã€ãã³ããããªããã³ãã³ãšãã£ãããã«äžçååœã§æŽ»çºã«éå¬ãããŠããŸãã以äžã¯æè¿éå¬ããã Evan æ°ãçŽæ¥åå ããããªã® Meetup ã®æ§åã§ãã
Vue.js Paris meetup right now! pic.twitter.com/VxM23gbuVy
â Vue.js (@vuejs) 2016幎12æ3æ¥
æ¥æ¬ã§ãèªåã orgnaize ãã Vue.js æ¥æ¬ãŠãŒã¶ãŒã°ã«ãŒãäž»å¬ã«ãã Meetup ã€ãã³ãã 2 åéå¬ããŸããã
Vue.js Tokyo v-meetup="#1"
Vue.js Tokyo v-meetup="#2" ç¥ 2.0 ãªãªãŒã¹èšå¿µ
Meetup ã€ãã³ãã® 1 åç®ã®ã€ãã³ãã§ãã v-meetup="1" ã§ã¯ãEvan æ°ã« Skype ã§åå ããŠããããQ & A 圢åŒã§åå è ãšãã£ããã«éåžžã«ãšããµã€ãã£ã³ã°ãªæéãéãããŸããã以äžã®ãã®æã®æ§åã§ãã(åçãã€ã±ãŠãããŸããããã)
#vuejs #vmeetjp1 Q & A session With Evan You pic.twitter.com/DBlaFswOgF
â ð€kazuya kawaguchið€ (@kazu_pon) 2016幎5æ31æ¥
ãŸããäŒç€Ÿäž»å¬ã«ããVue.js Meetup ã€ãã³ããéå¬ãããããã§ã Evan æ°ã Skype ã§åå ããŠãããŠãQ & A ã»ãã·ã§ã³ããã£ãŠçãäžãããŸããã
ABEJA MeetupãVue.js: Revolutionary Front-end #1 With Evan You!ãã¬ããŒã
æ¥æ¬ãŠãŒã¶ãŒåãã® Slack ã®éèš
æ¥æ¬ Vue.js ãŠãŒã¶ãŒåãã« Slack ã5æã«éèšããŸããããã® Slack ã§ã¯ãVue.js é¢é£ã®æ å ±é ä¿¡ãããŠããããVue.js ãŠãŒã¶ãŒå士ã§åãããªãããšã Q & A ãªã©ããŠã掻çºã«ã³ãã¥ãã±ãŒã·ã§ã³åºæ¥ãå Žã«ãªã£ãŠããŸããSlack ã®ç»é²è æ°ã¯ããã®èšäºå·çæç¹ã§ 212 人ã§ä»ããªãç»é²è æ°ãå¢ããŠç¶ããŠãããã³ãã¥ãã±ãŒã·ã§ã³ã掻çºã«ãªã£ãŠããŸãã
å ¬åŒã©ã€ãã©ãªã®æŽç
Vue.js ã¯ãããŸã§ã«ä»¥äžã®ã©ã€ãã©ãªãå ¬åŒãã©ã°ã€ã³ãšããŠãµããŒãããŠããŸããããããŒãžã§ã³ 2.0 以éã§ã¯å ¬åŒã«ã¯ãµããŒãããªããªããŸããã
vue-resource
vue-validator
vue-resource ã«ã€ããŠã¯ä»¥äžã® Vue.js å ¬åŒããã°ã®èšäºã§ã¢ããŠã³ã¹ããŠãããä»åŸã¯ pagekit ã®ãããžã§ã¯ãã§ã¡ã³ããã³ã¹ãããŸããvue-validator ã«ã€ããŠå ¬åŒã«ã¯ã¢ããŠã³ã¹ã¯ããŠããŸãããããã¡ãã¯ããããŸã§èªåãéçº & ã¡ã³ããã³ã¹ããŠããŸããããvue-resource ãšåãçç±ã§ãã¡ãããé¡ãã§ãŠãªã¿ã€ã¢ããŸãããåŒãç¶ã vue-resource ãšåæ§ã«èªåã®å人ãããžã§ã¯ããšããŠå¯Ÿå¿ããŠãããŸãã
Vue.js ã®ä»åŸ
ä»å¹Ž2016幎 Vue.js çéã«ãããåºæ¥äºããŸãšããŠããŸããããããã§ãã? Vue.js ã¯ããã³ããšã³ãã®æè¡ã«ãããŠé©åœçãªãã®ããªãªãŒã¹ããŠãããåãïŒããšãããã®ã¯ãããŸããã§ããããããã³ããšã³ããŠãŒã¶ãŒã«åãå ¥ãããããã®ã«é²åããŠãã£ã1幎ã ã£ããšããããšãåãããŸãã
Vue.js ã®ä»åŸã§ãããçŸåšç¢ºå®ããŠãããã®ãšããŠã¯ä»¥äžããããŸãã
VueConf é嬿±ºå®!
æ¥å¹Ž2017幎å€ã«ãããŒã©ã³ãã§åã® Vue.js å ¬åŒã«ã³ãã¡ã¬ã³ã¹ãVueConfããéå¬ããããšã«ãªããŸããã
It is happening! First @vuejs conference is now officially ON! Will you join us? https://t.co/MTnxaSdmzH #vuejs pic.twitter.com/kUA1oeY3Ji
â VueConf (@VueConf) 2016幎12æ21æ¥
ã€ãããæè¿ã©ã³ãã£ã³ã°ããŒãžããªãŒãã³ããCFP ãéå§ããŠããŸããã¹ã±ãžã¥ãŒã«ãå 容ã«ã€ããŠã®è©³çްã¯ä»åŸæããã«ãªã£ãŠããã§ãããã
awesome-vue ã«å€ããæ°ãã Vue.js ãšã³ã·ã¹ãã ã®ãã¥ãŒã¬ã·ã§ã³ãµã€ã
çŸåšã³ã¢ããŒã ã¡ã³ããŒäž»å°ã§æ°ãã Vue.js ã®ãšã³ã·ã¹ãã ã®ãã¥ãŒã¬ã·ã§ã³ãµã€ãã®ãªãŒãã³ãäºå®ããŠããŸãã
awesome-vue 㯠Vue 0.12 ã®é ã«å ¬éãããŠä»æ¥ãŸã§éçšããŠããŸããããæ å ±ãå€ããã®ããç»é²ãããã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãããŒã«ãšãã£ããã®ãã¡ã³ããã³ã¹ãããVueã®ææ°ã®ããŒãžã§ã³ã«å¯Ÿå¿ããŠããªãã£ãããšæ±ºããŠå質ãè¯ãç¶æ ãšã¯ãããŸããããŸãé·å¹Žã®éçšã«ããç»é²ãªã¹ããèšå€§ãªããæ¢ãã«ãããã©ãã Vue.js ãŠãŒã¶ãŒã«ãšã£ãŠæçšãªã®ãè©äŸ¡ãããä»çµã¿ããããŸããã
ããããçµç·¯ãããçŸåš awesome-vue ã«å€ããæ°ãããšã³ã·ã¹ãã ã®ãã¥ãŒã¬ã·ã§ã³ãµã€ããäœæããŠããŸãããããã¿ã€ãã¬ãã«ã®ãã®ã¯å€§æ¹ã§ããŠããã®ã§ããããªã«æéãããããã«ãªãŒãã³ãããã§ãããã
Vue.js æ¬äœãšåšèŸºã©ã€ãã©ãªã«ã€ããŠ
äžçªæ°ã«ãªããšæããã Vue.js ã®ä»åŸã§ãããæ£çŽã«èšããšã³ã¢ããŒã ã¡ã³ããŒã§ããèªåããEvan æ°ãç¹ã«ä»ã®ãšããä»åŸã«ã€ããŠæèšãããŠãããã®ã¯ãªãã®ã§ã確å®ããããŒããããã¯åãããŸããã2.0 ã®æã®ããã«çªç¶ãŽãã§ãŽãã§ãšäœãã ããŠãäœããªãªãŒã¹ãããããããŸããã
Vue.js ã® GitHub ã¬ããžããªã«ã¯ãGitHub projects ã§å ±æãããŠããã®ã§ããã®ããŒãããããš Vue.js orgnaization ã«ãã PoC ã¬ãã«ã®ã¬ããžããªããæ³å®ãããšä»¥äžã«ãªãã§ãããã
Vue.js core
keep-alive ã³ã³ããŒãã³ãåšãã®æ¹å
ãµãŒããµã€ãã¬ã³ããªã³ã°ã®æ¹å (code spliting / ãããã®ã³ã°åšã)
CLI / ãã«ãããŒã« (vue-cli)
ã³ã³ããŒãã³ããã¹ããŠãŒãã£ãªãã£
é åžå¯èœãªã³ã³ããŒãã³ãã®ãã³ãã¬ãŒããšãã¹ããã©ã¯ãã£ã¹
Electron ããŒã¹ã® playground (React Storybook çãªãã®?)
Webpack 2.0 ããŒã¹ã®ãã³ãã¬ãŒã
éçºããŒã« (vue-devtools?)
ç·šéå¯èœãª state ã€ã³ã¹ãã¯ã¿
ã³ã³ããŒãã³ãã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ã®ãããã¡ã€ãªã³ã°ããŒã«
Vuex store ã®ããã¯ã¢ãŒã
Vuex ãŠãŒã¶ãŒã»ãã·ã§ã³ã¬ãã«?ã®ã¬ã³ãŒã&åçããŒã«
RxMarbleã¹ã¿ã€ã«ã®ãããªèŠèŠåãããã¢ã¯ã·ã§ã³/ãã¥ãŒãã·ã§ã³ãã°
vue-router
route å®çŸ©æ¹æ³ã®æ¹å
vuex
vuex-observable
ãããã«
Vue.js Advent Calendar 2016 ã®æçµæ¥ãšããŠãVue.js ã®çµ±æ¬çãªå å®¹ãæžããŸãããããããã§ããã§ããããïŒ
ã³ã¢ããŒã ã¡ã³ããŒãšããŠæ¥å¹ŽåºŠã® Vue.js ãé 匵ã£ãŠåŒãç¶ãããã³ããšã³ããã¬ã³ããªãŒãªãã¬ãŒã ã¯ãŒã¯ãšããŠé²åãããŠãããŸãã®ã§ããã²ãã£ãŒãããã¯ãšãããããå©ãããŸãã
Vue.js æ¥æ¬ãŠãŒã¶ãŒåãã® MeetUp ã2æã3æã«èšç»ããŠããŸãã®ã§ããã²æ¥œãã¿ã«ããŠããŠãã ãããäŒå ŽæäŸããããšããæ¹ãããŸãããç§ãŸã§å£°ãããŠé ãããšãããããã§ããããããã¯ãæ¥æ¬çã® VueConf Japan ã¿ãããªãã®ãéå¬ããŠãEvan æ°åŒã¹ããããã§ããïŒ
Happy Holidays !! ð

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
2015 IN REVIEW
2015 å¹Žãæ¯ãè¿ã£ãŠã¿ãŸããã
æžããã³ãŒãã®æ°å
æããœãããŠã§ã¢ãšã³ãžãã¢ãã³ãŒãæžããŠãªããŒãªã®ã§æžããã³ãŒãã®æ°åã§æ¯ãè¿ã£ãŠã¿ãŸããããŸãã¯ãããŒã¿ã«ã®çµæããã
ã³ãããæ° 远å è¡æ° åé€è¡æ° ç·šéè¡æ° (远å +åé€) 2082 403112 148338 551450
远å ãåé€ãåãããŠç·šéè¡æ°ãšããŠã¯ïŒã ãã ã 55 äžã£ãŠãšããã§ããã
ããªãŒã¶æ§ã®æŠéåãè¶ãããšãããšãã£ãæãã§ãããããä»äºãš OSS (ãã©ã€ããŒã) ã§ã¡ãã£ãšãã¬ã€ã¯ããŠã³ããŠã¿ãŸãããã
ä»äºã§æžããã³ãŒãã®æ°å
ä»äºã§æžããã³ãŒãæ°ã¯ãããªæãã«ãªããŸãã
2015 幎ã«ä»äºã§æžããã³ãŒãæ°
ã³ãããæ° 远å è¡æ° åé€è¡æ° ç·šéè¡æ° (远å +åé€) 1249 319333 83926 403259
æ¯èŒã®ããã2014 å¹Žã«æžããã³ãŒãæ°ãèŒããŠãããŸãã
2014 幎ã«ä»äºã§æžããã³ãŒãæ°
ã³ãããæ° 远å è¡æ° åé€è¡æ° ç·šéè¡æ° (远å +åé€) 1193 101836 50650 152486
åå¹ŽåºŠãšæ¯ã¹ããš3åè¿ãæžããŠãŸãããä»å¹Žã¯ãããããšæ©èœçæåé¯èª€ãããããæè¿ã®æ¹å転æã§ãçã£ãããã«ã³ãŒãæžãããããªããã³ãããæ°ãå»å¹Žãšãããªã«å€ãããªãã®ã«ã远å è¡æ°ã倧äœ3åã«ãªã£ãŠããã®ã¯ããã®åŸŽåãçŸããŠããææã ãšæããŸãã
OSS / ãã©ã€ããŒãã§æžããã³ãŒãã®æ°å
次ã«ä»å¹Žã®OSSã§è²¢ç®ããéã«æžããã³ãŒãæ°ãèŠãŠã¿ãŸãããããããªæãã«ãªããŸãã
ãªããžã㪠ã³ãããæ° 远å è¡æ° åé€è¡æ° ç·šéè¡æ° (远å +åé€) vuejs/vue-validator 304 19184 21670 40854 vuejs/vue 8 120 74 194 vuejs/vuejs.org 21 54 34 88 vuejs/vue-router 59 1579 403 1982 vuejs/vuex 18 1226 255 1481 vuejs/awesome-vue 4 11 1 12 vuejs/jp.vuejs.org 290 33310 32099 65409 vuejs-jp/discussion 5 19 5 24 vuejs-jp/home 4 29 0 29 dekujs/deku 1 1 1 2 yyx990803/semi 2 10 6 16 kazupon/vue-i18n 76 11591 9436 21027 kazupon/vue-plugin-boilerplate 30 1189 425 1614 kazupon/vue-define-reactive-demo 1 139 0 139 kazupon/vue-server-express-demo-example 3 362 1 363 kazupon/vue-router-hackernews 7 14955 2 14957 èš 833 83779 64412 148191
ã³ãããæ° 833 ãç·šéã³ãŒãè¡æ°148191 ãå幎床ã®ããŒã¿ããã«åºããªãã®ã§ããã§ãããä»å¹Ž2015幎ã¯ãVue.js é¢é£ãããžã§ã¯ã(vuejs.org/vue-router/vuex)ã®ç¿»èš³ãšããVue.js ã® orgnaization ã®äžå¡ãšã㊠vue-validator ã®ã¡ã³ãã»éçºãå人㮠vue-i18n ã® Vue.js 1.0 å¯Ÿå¿ ãšãã§ãçžåœã³ãŒãæžããã®ã§ããã®æ°åã¯åå¹ŽåºŠã®æ°å€ã§æ¯èŒãããšãã宿ããŠããæãã§ãã
GitHub ã®è
次㫠GitHub ã®è ããš contributions ãèŠãŠã¿ãŸãããã
public çã®è¡šç€ºã¯ãããªæãã§ãã
public contributions
ä»äºã® private ãªãã®ãå ¥ã£ããã®ã¯ãããªæãã«ãªããŸãã
public + private contributions
æ¿ãè²ã®éšåãš public ã®ã¿ã®èãšæ¯èŒããªããèŠããšãã©ãã§ä»äºã®ã³ãŒããã£ã±ãæžãããã©ããããã«åãããŸããã2æã7æãŸã§æ¿ãéšåãå€ãã®ã§ããã®èŸºã確ãã«ã¬ãªã¬ãªã³ãŒãæžããŠãããã€ããŠããªãããŸããã®ç¶æ³ã¯ä»ãå€ãããŸãããã
public ã®æ¹ã§ã¯ã5æä»¥éèãå€ããªã£ãŠããŸããããã¯ãVue.js ã® orgnaization ã®äžå¡ãšã㊠vue-validator ã®ã¡ã³ãã»éçºããŠããŠæŽ»åã¯ããŠããŸããããããã«æ¥æ¬èªå ¬åŒãµã€ããå ¥ã£ãŠããã®ãèã®æ°ãå€ããªã£ãçµæã§ããã6æã« Vue.js æ¥æ¬èªçã®å ¬åŒãµã€ããå ¬éããŠããã鿬¡æ¬å®¶ãµã€ãã®æ¹ãæŽæ°ããããšãããã«æ¥æ¬èªç¿»èš³ããŠæ¥æ¬èªãµã€ãã®æ¹ã«ãããã€ãšãã£ãæãããVue.js 1.0 ã®å ¬éãŸã§ç¶ããçŸç¶ãåŒãç¶ããšããæãã§ããããã
å匷äŒã§ã®çºè¡š
ä»¥äž 2 ä»¶ã
Railsã§äœããããµãŒãã¹ã«Vue.jsãå°å ¥ãããšããã話
ã€ãã³ã: Vue.js Meetup
Next Vue.js 0.12
ã€ãã³ã: Data Binding JS Night
å°ãªããããæ¥å¹Žã¯ãå匷äŒçºè¡šã¯ãã£ãšå€ãããããšããã§ãã
ä»å¹Žã®ç·æ¬
äžèšã§ãããšãä»äºã§ã¯ ãã£ãªã¢ã¢ãã ãš OSS ã§ã¯ Vue.js ãšããæãã§ããããã
ãã£ãªã¢ã¢ãã
ä»ã®äŒç€Ÿã«ã¯ãè©æžçã«ã¯ãªãŒãã¢ãŒããã¯ãçãªåœ¹å²ãšããŠ2014幎1æã«å ¥ç€Ÿããå ¥ç€Ÿä»¥éåŒç€ŸãµãŒãã¹cuusooã®ã·ã¹ãã å šè¬ã®éçºé¢ã§ç€Ÿå ã®ãšã³ãžãã¢ãšãªãŒãããŠãããã§ããã2015幎6æããäœå¶ãå€ãããCTO ã«ãªã£ãããšã§ããããã
ãŸãã«ä»é²ãã§ãããããžã§ã¯ãã§ãéçºèšç»(ããŒãããã)ãäºç®èšç»ãéçºããŠãããããã¯ãã®ãã©ã€ã·ã³ã°(äŸ¡æ Œèšå®)ããããã客æ§ã®ãšããã«ãã£ãŠè²ã ãšãã¢ãåãããããé¡ãããããšããŸãã«ãCTO çãªä»äºãã€ã€ãã³ãŒããã¬ãªã¬ãªæžããŠæãã§ãã
Vue.js
ä»å¹Žã¯ã€ãã« Vue.js 1.0 (CodeName:Evangelion) ããªãªãŒã¹ãããŸãã:tada: ãVue.js 1.0 ã®ãªãªãŒã¹ã¯ãå ¬åŒãµã€ãvuejs.orgã®ããã¥ã¡ã³ã1.0 ã®å 容ã Vue.js ã®äœè Evanæ°ãšãã£ããã«é£æºããªãããæ¥æ¬èªçå ¬åŒãµã€ãjp.vuejs.orgãã»ãŒåæã«ãªãªãŒã¹ã§ããã®ã§ãOSS ãããžã§ã¯ããšããŠããªããšããµã€ãããã®ãèŠããŠããŸããGitHub ã®ãã¬ã³ã ããHackerNewsã«ãã©ã³ã¯ã€ã³ããŸãããã
ããã«ã€ããŠæ¯ãè¿ã£ãŠã¿ããšãäºã®å§ãŸã㯠Vue.js Meetup ã®ã€ãã³ããéå¬ã ã£ããšæã£ãŠããŸãããã®ã€ãã³ãã®ãããã§å ¬åŒãµã€ãã®ç¿»èš³ããããšãã話ãã§ãŠããŠã翻蚳ãããžã§ã¯ã ãç«ã¡äžããã6æã«æ¥æ¬èªå ¬åŒãµã€ã jp.vuejs.org ã®ãµã€ãå ¬éããããšãã§ããã®ã§ãæ¹ããŠã翻蚳ã«é¢ãã£ãŠãã ãã£ãæ¹ã«æè¬ã§ãã£ã±ãã§ãã
æ¥å¹ŽåºŠ
ä»äºé¢ã®æ¹ã§ã¯åŒãç¶ã CTO ãšããŠä»ã®ãããžã§ã¯ããé 匵ã£ãŠããããšæããŸãããããæåãããšé¢çœãããšã«ãªãã®ã¯ãã¡ãããèªåã®æãæããŠãããã¯ãããžãŒã«ã³ãããŒãšããŠãšã³ãžãã¢ã幞ãã«ãªãããããªç°å¢ãäœã£ãŠãããããªã®ã§ã
OSS ã®æ¹ã¯ãä»ãŸã§ã©ããããããªæ¹é¢ã«ã¢ã³ããã匵ãã€ã€ãåŒãç¶ã Vue.js ã®æ¹ã«ããŠãããããšæããŸããèªåãæ åœããŠãã vue-validator ã¯ãã¡ããã®ããšãvue æ¬äœããšã³ã·ã¹ãã åšãã®æ¹ã«ããããããšã³ã³ããªãã¥ãŒãããŠããããã§ããEvan æ°ãæ¥æ¬ã®äœãã®ã€ãã³ãã§åŒã¹ããããã§ããã
ããã§ã¯ãçæ§ãè¯ãã幎ããæ¥å¹Žããããããé¡ãããããŸãã
Vue.js äœè ãåºæŒããããããã£ã¹ã
ãã®èšäºã¯ãVue.js Advent Calender 2015 5æ¥ç®ã®èšäºã§ãã
ã¡ãã£ãš Vue.js ã®ããã°ã©ãã³ã°ãšã¯é¢ä¿ãããŸããããããæè¿ãVue.js ã®äœè Evan æ°ãããããã£ã¹ãã«åºæŒãããããªã®ã§ãCoffee Break çã«è»œã玹ä»ã ãããããšæããŸãã
JavaScript Jabber - 187 JSJ Vue.js with Evan You
The Changelog - 184: Discussing Vue.js and Personal Projects With Evan You
Full Stack Radio - 30: Evan You - Diving Deep into Vue.js
ã©ã®ãšããœãŒããå 容çã«ã¯ããªã Vue.js ãäœã£ãã®ãïŒãComparison with Other Frameworks(ä»ã®ãã¬ãŒã ã¯ãŒã¯ãšã®æ¯èŒ(æ¥æ¬èªèš³)) ã®å 容ãããã«èžã¿èŸŒãã ãã®ã話ããŠããããšãã£ãæãã§ãã
å šãŠãè±èªã§æ·å± ãé«ããããããŸããããEvan æ°ãã©ããªäººãªã®ãæ°ã«ãªãæ¹ã¯ããã²ãããããã£ã¹ããèŽããŠã¿ãŠã¯ãããã§ããããã (JavaScript Jabber ã®ãšããœãŒãã¯ãTranscript ãããã®ã§ãå§ãã§ãã)
Vue.jså ¬åŒãµã€ãã®æ¥æ¬èªèš³ããªãªãŒã¹ããŸãã
Vue.js å ¬åŒãµã€ã(http://vuejs.org) ãæ¥æ¬èªèš³ãããµã€ã(http://jp.vuejs.org) ããªãªãŒã¹ããŸããã
å ¬åŒãµã€ãã®ç¿»èš³ã¯äžèš Github ã®ãªããžããªã§è¡ã£ãŠããŸãã
vuejs-jp/vuejs.org
翻蚳ã¯ã€ãå æ¥å ¬éãããææ°ããŒãžã§ã³ 0.12.1 ãŸã§ç¿»èš³ããŠããŸãã
åé¡ç¹ã®ææãç¿»èš³ã®æ¹åã倧æè¿ã§ãã issues ãŸã㯠pull-request ã§ãé¡ãããŸãã
æ«çã§ãããä»åãååé ããæå¿ã®ã¿ãªããŸãããããšãããããŸããïŒ ãããŠãç²ãããŸã§ããïŒïŒ
Vue.js Meetup ãéå¬ããŸãã
ã€ãå æ¥ãVue.js Meetup ãéå¬ããŸããã
ãã€ããããã£ãã€ãã³ãã¯åå è ã®æ¹ãªãã§ãããå®ã¯ã€ãã³ããäž»å¬ãããšããã®ã¯åããŠã ãªã®ã§ã¡ãã£ãšå°ããããããªæãã ã£ãã®ã§ãåããŠã§äžå®ããããšããã®ãšãäŒå Žã§äœ¿ã£ããã¡ã®äŒç€Ÿã®ãã£ããèããŠ10åãšãã人æ°ã§éå¬ãããŠé ããŸããã
éå¬ããç®çãšããŠã¯ãVue.jsããããäžã§ãå ¥éèšäºãšããæ¥åã§äœ¿ã£ãŠãŸãçãªèšäºãã¡ããã¡ããèŠããããã§ããã©ãå®éã«äœ¿ã£ãŠãã人ãã¡ã®çã®å£°ãèãããããŠããããããšç¥èŠãæ å ±ãã¿ããªã§å ±æãããã£ããšããã®ãç®çã§ãã
èªåãçºè¡šããå 容
Railsã§äœããããµãŒãã¹ã«Vue.jsãå°å ¥ãããšããã話
åŒç€Ÿã® Rails ã§äœããããµãŒãã¹ã« Vue.js ãå°å ¥ãããšãã«ã€ããŠçºè¡šãããŠé ããŸããããµãŒããµã€ã㯠Rails ã§ãããã¯ã©ã€ã¢ã³ããµã€ãã¯ãã»ãšãã©ã®çŸå Žã§ã¯ jQuery ã䜿ã£ãŠãããšæãã®ã§ããŸãã«åŒç€Ÿãšåãããã«ãjQuery ã§äœãããã³ãŒãè³ç£ã掻ãããããšæ€èšããŠããæ¹ã®åèã«ãªãããããªãããšæã£ãŠããŸãã ãŸããVue.js ãã©ããªæãã§äœ¿ã£ãŠãããã©ãããã¹ã©ã€ãã«æžããŠããã®ã§ãVue.js 䜿ã£ãŠããæ¹ã®åèã«ãªãã°ãšãèªåã¯ããããŠããïŒã£ãŠããã®ãããã° Twitter ã§ããã·ã¥ã¿ã°ã§ã€ã¶ãããŠãããæ¹ãå¢ããã°ãã¿ããªå¹žãã«ãªãããããããªãã®ã§ãããããããŸããïŒ:)
é£ã³èŸŒã¿ã©ã€ããã³ã°ããŒã¯
Vivaldi + Vue.js ãã¿ (ãããŸãããã¿ã€ãã«è©³çްã¡ã¢ãå¿ããŸããããã)
@hashedrockããã®ã©ã€ããã³ã°ããŒã¯ãã¹ã©ã€ãã¯ãã¡ãã«ããããã§ãã
çºè¡šåŸã®ã¿ããªã§èªããã£ãïŒå 容
èªåã®çºè¡šãçµãã£ãåŸã®ãçºè¡šã«å¯Ÿãã質åããèªããã£ãå 容ã«ã€ããŠããããµããªå£èª¿ãªè°äºé²ã£ãœãçŸ åã§æçž®ã§ãããå ±æããŠãããŸãã(ééããè¶³ããªãéšåããã£ãã Twitter @kazu_pon åœãŠã«ãææããŠããã ãããšå©ãããŸãïŒïŒïŒïŒ)
åå è ã®æ¹ããã®è³ªå: Vue.js ãCSS ãšãããããã¶ã€ããŒããå°ãããã§ããïŒ
èªå: ãã¡ã§ã¯ãã³ãŒããæžããã®ã§ãç¹ã«åé¡ãªããªãã£ãwããã忥ããã®ãªããvueify 䜿ãã° CSS ãšã stylus ãšããããããšä»ã®ãã³ãã¬ãŒããã¡ã¿CSSèšæ³ã䜿ããŠã³ã³ããŒãã³ãåã§ãããã幞ãã«ãªããããã
åå è ã®æ¹: ãã¶ã€ããŒãããšãã£ããã«ãããã¿ã€ãã³ã°ããŒã«ãšããŠãvueify ã䜿ã£ãŠããã(ãããªæãããªïŒ)
èªå: åå è ã®æ¹ã§æ¥åã§äœ¿ã£ãŠããæ¹ã¯ã©ããªæãã§äœ¿ã£ãŠããŸãïŒ
åå è ã®æ¹: Rails ã§æ®éã«ãµãŒããŒãµã€ãã®ãã³ãã¬ãŒãã«æžããŠäœ¿ã£ãŠãããä»åã®çºè¡šã®ãããªãVue.jsã§äœã£ããã®ããã«ãããŠãæ¢åã®ãµãŒããŒãµã€ãã®ãã³ãã¬ãŒãã«scriptã¿ã°ã§çµã¿èŸŒããšããçºæ³ã¯ãRails ãŠãŒã¶ãŒãããããšæ¬æ°çã ã£ãã
åå è ã®æ¹: ãã¡ããRails ã§ãããBackbone.js + Vue.js ãšãã圢ã§äœ¿ã£ãŠããŸããBackbone.js 㯠Router ãã䜿ã£ãŠããªããŠãä»ã¯ Vue.js ã
åå è ã®æ¹: ããã³ãã«Vue.jsãããã¯ã¯ Go ã§å®è£ ããã REST 㪠API ãšãã圢ã§äœ¿ã£ãŠããŸããå žåç㪠SPA çãªäœ¿ãæ¹ã
åå è ã®æ¹: IE8 ã§åããªãã®ãã€ããããã
åå è ã®æ¹: ä»ã®åè£ãšããŠã¯ãKnockout.js ãããããã
åå è ã®æ¹: BtoB ã«ã¯åããŠãªãã§ããwãã©ã¡ãããšãããšããããã¿ã€ãçãªãµãŒãã¹ã¿ãããªåžžã«é²åãã BtoC åãã§ãããã
åå è ã®æ¹: Vue.js 䜿ããããã ãã©ãããã¥ã¡ã³ããè±èªãªãã§ãã¡ã³ããåŒãç¶ãã®é¢ä¿ã§æ¡çšã§ããªãããã
èªå: è±èªã®å£ãããã
åå è ã®æ¹: Vue.js ã®å ¬åŒãµã€ããæ¥æ¬èªçããã£ãæ¹ãããããã誰ãäœã£ãŠw
åå è ã®æ¹: Vue.js 0.10 ãã 0.11 ç³»ã«ãã€ã°ã¬ãŒã·ã§ã³ããæãAndroid (2.xç³»?) ãåããªããŠã€ããã£ããçµå±ãæå¿µããŠã0.10 ã«æ»ããã
èªå: 0.10 ãã 0.11 ãžã®ã¢ããã°ã¬ãŒãã£ãŠã以å€ãšå€§å€ã§ãããããã¡ããã£ãŠãããã§ããã©ã1æ¥ã§çµãããªããŠãããçµå±ãŸã 0.10 ã®ãŸãŸã
èªå: ä»åã®çºè¡šã§è§Šããªãã£ããã§ããã©ãã¯ã©ã€ã³ããµã€ãã®UIã®ãã¹ãã©ãããŠãŸãïŒãã¡ã¯ãUI仿§ãã³ãã³ãå€ããã®ã§éçºç°å¢ãQAãªã©ã§ç¢ºèªãããšããæ¹éã§ãã
åå è ã®æ¹: phantom.js (casper.js)ãªãããã¬ã¹ãã©ãŠã¶äžã§ãmocha ãªã©ã§èµ°ããããšããæãã§ããããã
åå è ã®æ¹: ãã¡ããã¹ããã£ãŠãªãã§ãããUIã®ãã¹ããéãã§ãããã
åå è ã®æ¹: Vue.js ã§éçºãããšããRails ã¿ããã®ãã£ã¬ã¯ããªã«èŠçŽãªãããããã£ããããã®ã«ã誰ããã©ã°ã€ã³ãäœãäœã£ãŠw
åå è ã®æ¹: ã¿ãªãããBrowserify 掟ïŒãããšããWebpack掟?
èªå: Vue.js ã®ãã©ã°ã€ã³äœã£ããšãã¯ãWebpack 䜿ã£ãŠãŸããAMDãCommonJS ãè€æ°ã®ã¢ãžã¥ãŒã«ã·ã¹ãã ãããã±ãŒãžãããŒãžã£ããµããŒãããããã§ã
BrowserifyãWebpack åã ãšèšã£ãæãã§ããã
åå è ã®æ¹: Vue.js ã®äœè ãEvanæ°ãæè¿ããŸãåããªãããã
åå è ã®æ¹: Meteorã«join ããããå¿ããã®ãããMeteor ã§äœãã£ãŠããã ããã
èªå: ããŒããããã§ããwãããŒããããã®issuesã«ä»åŸã®ããšãæžããŠããªãã®ã§èããŠã¿ãŸãã
åå è ã®æ¹: äœè äžäººã§éçºããŠãããã©ãä»ã®äººãå·»ã蟌ãã§éçºããªããã§ãããã
èªå: ãã®èŸºããèããªããšããåãããªãã§ãããèªåæè¿ãorgnization ã«å ¥ããŠè²°ãããã©ãèªåã®äœã£ã vue-validator ã ãããã¿ããã§ããªãã§ãã
åå è ã®æ¹: ã²ãã£ãšããããä»åŸããã¡ãžã£ãŒããŒãžã§ã³ã¢ãããšãããªãã®ããã(å šå¡www)
åå è ã®æ¹: æè¿ React.js ã話é¡ã«ãªã£ãŠããããããVue.js 圱èããªããŸããããw
èªå: ããã§ããwãVirtual-Dom ã Flux ã§æè¡çã«é¢çœããã倢ãã²ããããããªå¯èœæ§ããããŸããããã
åå è ã®æ¹: Vue.js ãã·ã³ãã«ã§ãµã¯ããšããã«äœ¿ããããããã³ãããã§ãããã
èªå: ããæããŸããAPI ãããã§ããŠããŠäœ¿ãããããã§ãæŒããŠããããã§ããã
åå è ã®æ¹: ãã©ãã¡ãªWebã¢ããªãããäœããŸããããã
åå è ã®æ¹: ãã¡ã®äŒç€Ÿã§ã¯å¥ãããžã§ã¯ã?ã§ã¯ããããã¿ã€ãã« Vue.js ãæ¬éçºã®ãšãã¯ãReact.js ãŠããæãã§ãã
èªå: Vue.js ããµãŒããŒãµã€ãã§ãã¬ã³ããªã³ã°ããããå人çã«ã¯ Isomorphic ã倢ãªãã§ïŒã§ããå®å šã«ãã©ãŠã¶ã®çDOMäŸåããŠããããã§ããªãïŒïŒ
è¬èŸ
åœæ¥ã®é²è¡ãšãã€ãã³ãã®æºåãšãã€ãã³ãããŒãžã®èª¬æã«äžåããã£ããããŠãåå ãããæ¹ã«äžæãªæãããããŠããŸã£ããããããªãã§ãããåå ãããæ¹å šå¡ãšãã£ããã«ãVue.js ã«ã€ããŠãããããšè©±ãäºã§ãããšæãã®ã§ãéå¬ããŠãã³ãããã£ããšæã£ãŠããŸãïŒ æ¥ãŠé ããçãããããããšãããããŸããïŒ
次åã«ã€ããŠã¯ãã¡ãã£ãšä»åŸã®æ§åãèŠãŠããããããã©ããæ±ºããŸãïŒïŒ
vue-validatorãv0.11ã®Vue.jsã«å¯Ÿå¿ãã
ãã®èšäºã¯ Vue.js Advent Calendar 2014 ã®13æ¥ç®ã®èšäºã§ãïŒ
以忬家ãã fork ãã vue-validator ãå®è£ ãããã§ãããv0.11 ç³»ã§ã¯å šããšãåäœããªããããv0.11 ç³»ã§ãåäœãããã察å¿ããã®ã§ã軜ã玹ä»ããããšæããŸãã
Vue.jsã®è©³çŽ°å¯Ÿå¿ããŒãžã§ã³
Vue.js ã® v0.11.2 以éãå¿ èŠãv0.11.2 ããåã¯ãv0.11.2 ã§æ°ãã«å ¬éã«ãªã£ã API ãå©çšããŠãããããåäœããªãã®ã§æ³šæã
ã€ã³ã¹ããŒã«
以åã®ããŒãžã§ã³ã§ã¯ãcomponent ãš bower ãããµããŒãããŠããŸããã§ããããä»åã¯ããããå«ã以äžããµããŒãã
browserify (npm)
bower
component
duo
webpack
äœ¿ãæ¹
以åã®ããŒãžã§ã³ãšåãããVue.use ã§ãã©ã°ã€ã³ãã»ãããã圢ã§å©çšå¯èœã«ãªãã
var Vue = require('vue') var validator = require('vue-validator') Vue.use(validator)
äžèšã«ãããv-validate ãšãã directive ãæå¹ã«ãªãããã® directive ã䜿ã£ãŠä»¥äžã®ããã«å©çšããããšã§ããªããŒã·ã§ã³ããŠããããšã«ãªãã
<form id="blog-form"> <input type="text" v-model="comment" v-validate="minLength: 16, maxLength: 128"> <div> <span v-if="validation.comment.minLength">too long your comment.</span> <span v-if="validation.comment.maxLength">too short your comment.</span> </div> <input type="submit" value="send" v-if="valid"> </form>
泚æãšããŠã¯ãv-validate 㯠v-model ãšåã element ã§ãªããšåäœããªããå¿ ããv-model ãšãã£ããã«äœ¿ãå¿ èŠãããã
ã¡ãªã¿ã«ä»¥åããŒãžã§ã³ã§ã¯ãv-validate ãšãã directive ã¯ãã£ããåºæ¬äœãããããã£ã«ã¿ãé§äœ¿ã㊠Hack ã£ãœãããæ¹ã§å¯Ÿå¿ããŠããã
ããªããŒã·ã§ã³çµæ
以åã®ããŒãžã§ã³ã§ã¯ãããªããŒã·ã§ã³ã®çµæã¯ data ã§ç®¡çããŠããã®ã§ã¯ãªããViewmodel ã€ã³ã¹ã¿ã³ã¹ã« $validationã$validaããªã©çããããããŠå¯Ÿå¿ããŠããããã®ããŒãžã§ã³ä»¥éã§ã¯ãdataã«ããªããŒã·ã§ã³çµæãåæ ããããã«ããŠããã以äžããµããŒãããŠããã
validation
valid
invalid
dirty
ãã«ãã€ã³ããªããŒã¿
以äžãããªããŒã¿ããµããŒãããŠããã
required
pattern
minLength
maxLength
min
max
ãŠãŒã¶ãŒã«ã¹ã¿ã ããªããŒã¿
以åã®ããŒãžã§ã³ãšåæ§ãµããŒãããŠãããv0.11ã§ã¯ Viewmodel ã®ã€ã³ã¹ã¿ã³ã¹çææãããã㯠Vue.extend ãªã©ã以äžã®ãããªãªãã·ã§ã³ã«ãã圢ã§å¯Ÿå¿å¯èœã
var MyComponent = Vue.extend({ data: function () { return { name: '', address: '' } }, validator: { validates: { email: function (val) { return /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(val) } } } }) new MyComponent().$mount('#user-form')
ãªãã·ã§ã³
åå空é
ä»å察å¿ãã vue-validator ã§ã¯ãããªããŒã·ã§ã³çµæã¯ãå éšã§ inherit ãªãã·ã§ã³ãããŠãããããdata` ã®åå空éãš conflict ããå¯èœæ§ãããã
以äžã®ããã«ãvalidator ãªãã·ã§ã³ã§ãconflict ããªãããã«ããããšãå¯èœã
var MyComponent = Vue.extend({ //... validator: { namespace: { validation: 'myValidation', valid: 'myValid', invalid: 'myInvalid', dirty: 'myDirty' } } //... })
ã¬ããžããª
https://github.com/kazupon/vue-validator
察å¿ãçµããŠææ³
æåã¯ãv-component ã䜿ã£ãå®å šã«ã³ã³ããŒãã³ãããŒã¹ã§äœã£ãŠãããã ãã©ãv0.11.1 ã§ãã® v-component ã®åäœãå€ãã£ãŠããŸã£ãŠãã¯ããããäœãçŽãã«ãªã£ãŠã€ããã£ããããã ãã©ãv0.11.2 ã§ãããããšå éšã® API ãå ¬éããããããã§ã楜ã«ãªã£ãã®ã§çµæçã«ã¯ããã£ãããšã
ãããªããããªã§ Vue.js ã®ããŒãžã§ã³ã¢ããã§æ¯ãåãããŠå¯Ÿå¿ãé ãã«é ãã vue-validator ã䜿ã£ãŠããããã£ãŠé ãããšå€§å€ãããããã§ãã:)

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
golangå匷äŒã«åå ããŠãã
HDEããäž»å¬ã®golangã®å匷äŒã«åå ããŠããã®ã§ãã©ã€ããªææ³çãªãã®ãæžããŠããããšæãã
å»å¹ŽèŸºããããèªåã®åšãã§é »ç¹ã«éå¬ãããgolangã®å匷äŒãã©ããªé°å²æ°ã®ãããæ°ã«ãªã£ãŠããã®ãšãããªãgolangã䜿ãããªããŠãã@lestrratããã®ã話ãèãããã£ããšããããšã§ãgolangã®å匷äŒã«åå ããŠã¿ãŸããã
HDEããã®ã»ãããŒã®äŒå Žã§ãããå¿«é©ãªæ€ åã§æåãªãªã«ã ã©ããã®æ€ åãæºåãããŠãŠãå匷äŒå§çµãããå¿«é©ãåŸããã¯ã¿ãŒããããŒã0åã§é£²ãã販売æ©ããã£ãŠãæ£çŽæãã¯ã¿ãŒããããŒé£²ãã ãšãã¯ãŸãããŠãããäºåºŠãšé£²ãããããšæã£ãŠãããã§ããã0åãšããããšã§é£²ãã§ã¿ããšããããŸãæè¿ã®ãã¯ã¿ãŒããããŒä»¥å€ãšãããããããããŸãããïŒãªãã§ã2æ¬é£²ãã§ããŸããŸãããHDEãããã¯ã¿ãŒããããŒããããšãããããŸããïŒ
å匷äŒã§å人çã«ãããããã£ã話ã¯ã@yuroyoroããã®cgoã®è©±ã@nabekenããã®ã©ã€ã»ã³ã¹åšãã®è©±ããããŠã¡ã€ã³@lestrratããã®è©±ã3ã€ã
cgoã®ã話ã¯ãäœã ããã ãã£ãŠããã©ãŒãã³ã¹äžããããæ¢åã®ãã®ãããã£ãšäœ¿ã£ãŠäœãäœããããšãã¯ãcã§äœã£ã颿°ãåŒã³åºããšãããã§ãŠãããã ãšæãããgoã®ãœãŒã¹ã³ãŒãã« import "C" ã®äžã«ã³ã¡ã³ãã§cãæžããšåããšåŒã³åºãããã®ã¯ãããããšãŽãã¥ãŽãã§ãšã§ããããªã®ã§ãªã¢ãã€ãªãšæã£ããluaãšãmrubyãšãçµã¿åããããšäœãã€ãã€ããšãã§ãããïŒ
ã©ã€ã»ã³ã¹åé¡ã®ã話ã¯ããããã¯ãäœãäžã§ã¯ããªãéèŠãLLãªèšèªã§ããã±ãŒãžãããžã£ãŒãšã䜿ã£ãŠéçºããŠãããšãã©ã€ã»ã³ã¹ã¯ãã£ããã«ãã£ã€ããŠæ¥ãããããã§ããŸãæèããŠããªãã£ããã§ããã©ãgolangã®å Žåã¯ã1ã€ã®ãã¡ã€ã«ã«ã³ã³ãã€ã«ãããŠããŸããŸãããããLLã«æ¯ã¥ããããŠããŸã£ãèªåã«ãšã£ãŠãæ¹ããŠæ°ä»ãã®è©±ã§ããã£ãã
æåŸã®ã¡ã€ã³ã®@lestrratããã®ã話ã èªåã®ããã«A Tour of Goããgolangå ¬åŒdocãªã©ã§ããçšåºŠã²ãšéãè§Šã£ãŠã人ãåå¿è ã§ãåãããããªäººãã¿ãŒã²ããã«ããã話ã§ãããpanic/recoverãerrorããããŠgoroutin/chanelã«ã€ããŠãããããšè©±ããã£ããã§ãããäžã§ãäžçªããã£ãã®ããæ§é äœãšinterfaceãã²ãšéãè§Šã£ãŠã¿ãŠæ§é äœãšinterfaceã®èšèšã«ã€ããŠä»ã®èšèªã«ã¯ãªãçŽ æŽããããå³ãã£ãŠããã®ã§ãããã©ã衚çŸãããããã®ãããããæ±ããŠããŠããŸããããããªãšããã«ããã³ãã€ã³ãã§æ§é äœãšinterfaceã®èšèšã«ã€ããŠå ·äœçã«è©±ããŠãã ãã£ãã®ã§ããããããè§£æ¶ã§ããŠã»ããšã«ããã£ããšæããŸãã
ä»åã®å匷äŒã§ããªãgolangãžã®ä¿¡ä»°ãæ·±ãŸããŸããïŒãã¡ã®äŒç€Ÿã®ãµãŒãã¹(back-endã®éšå)ã§ãããã¯ã·ã§ã³ã«æå ¥ã§ãããããä»åŸãåŒãç¶ããããããšgolangãšãããããŠéãã§ãããããšæããŸãã
倩äžäžã¯ã©ã€ã¢ã³ããµã€ãJS MV*ãã¬ãŒã ã¯ãŒã¯æŠéäŒã§LTããŠãã
ã€ãå æ¥ãã倩äžäžã¯ã©ã€ã¢ã³ããµã€ãJS MV*ãã¬ãŒã ã¯ãŒã¯æŠéäŒãã«è¡ã£ãŠããŸãããããããªMV*ãªãã¬ãŒã ã¯ãŒã¯ã®è©±ãèããŠæ¥œããã£ãã§ããããã«ãã£ã«ãã·ã§ã³ã¯é ãå ¥ããªããã ã£ãã®ã§ãããã©ãŒã®æ¬é³ïŒçãªã¶ã£ã¡ããããŒã¯ãèããŠããšãŠãé¢çœãã€ãã³ãã ã£ããšæããŸãã
èªåã話ããLT (ã©ã€ããã³ã°ããŒã¯)
æè¿è©±é¡ã®Vue.jsã«ã€ããŠè»œã説æããæãã§ãã
Vue.js
Vue.js ã®æ¿ã話ãããŠãããã£ããã§ããã©ããããããããã¬ãŒã ã¯ãŒã¯ã®éžå¥ã«æ©ãã人ãã¡ã«åèã«ãªããããªããšã話ããã»ãããããšæã£ãã®ã§ãç¡é£ãªå 容ã«ããŸããã
ã¡ãªã¿ã« LT ã¯å®ã¯åããŠãæéå ã«è©±ãããšãã§ããã®ã¯ãããã§ãããä»èŸŒãããžã§ãžã§ããããããLTãå¥¥ãæ·±ãã§ãã
ããã«ãã£ã«ãã·ã§ã³ã«ã€ããŠèªåãæãããš
SPA (Single Page Application)
SPA ãæ¡çšãããã¯ãŠãŒã¹ã±ãŒã¹æ¬¡ç¬¬ã ãšæãã管çç»é¢ãFull 㪠Web ã¢ããªã±ãŒã·ã§ã³ãªã©ã¯ãSPA ã«åããŠããŠãCMS ãªã©ã® SEO ãå¿ èŠããã®ã¯åããŠããªããšæãããããããã®åmozaic.fmã§ã話ããŠãŸãããã
Isomorphic
æšä»ã® API ãã¡ãŒã¹ããšããããAPI ããŒã¹ãšãããµãŒãã¹èšèšãäž»æµã«ãªã£ãŠããŠããããšãèãããšå³ããããªãšããã ããããã£ããã©ã¹ãã¬ãŒã·ã§ã³ãèãããšãããŒãºããããšæããã§ãWeb ã® UI ã¬ã€ã€ãæ ãããã³ããšã³ããå®è£ ããããã® Rendr ã®ãã㪠Isomorphic ãªãã¬ãŒã ã¯ãŒã¯ããã£ãŠãããã®ããªãšã
WebComponents
èªåã Polymer èªäœã«ã¯ããŸãèå³ããªããHTML/CSS/imagesãšãã£ããã®ãã¢ãžã¥ãŒã«åã§ããŠãWeb éçºã幞ãã«ãªããã°ããã
ã¢ãžã¥ãŒã«ã®ããŒãã«ã€ããŠ
çŸç¶ãCommonJS ã§ãããå°æ¥çã«ã¯ ES6 ã® moduleã
ãã³ãã¬ãŒããšã³ãžã³
handlsbarãããããéãã mustache ãšäºæãããã
ãããã«
ãã®ã€ãã³ããäŒç»ãã @yousuke_furukawa ãã & @mizchi ããã«ã¯æè¬ãããããšãããããŸããïŒ
ZeroMQã§Socket.IOé¢é£ã®ã¢ãžã¥ãŒã«ãäœã£ãŠã¿ã
Socket.IO MeetUp
ãŸããæ¬é¡ã«å ¥ãåã«ã
æšæ¥ã®Socket.IO MeetUp ã«è¡ã£ãŠæ¥ãã®ã§ãããsocket.ioã®äœè Guillermo Rauch æ°ããçŽã ã«ãsocket.ioãäœãã«è³ã£ãèæ¯ããä»åŸã®socket.ioã®é¢é£ã®è©±ããããšä»è©±é¡ã® MQTT ãš Socket.IO ã䜿ã£ã話ãèãããšãã§ããŠã楜ããã£ãã§ãã
"Web äžã® EventEmitter" ãšãããããªãã©ãããã©ãŒã çãªæãã§ä»åŸçãäžãããšããã§ããã :)
ã¢ãããŒã·ã§ã³
ããŠãæ¬é¡ã
ããæè¿ã
Socket.IO 1.0 ã®ãªãªãŒã¹
æ±äº¬NodeåŠå13æéç®ã§ã® Socket.IO 1.0 ã«é¢ãã話
ãããŠä»åã®Socket.IO Meetup
ãšããããšã§ããããããšé²åããŠãã Socket.IO ã«èå³ãæ¹§ããã®ã§ãZeroMQ ã§è€æ°ã® Socket.IO ãµãŒãéã«ã¡ãã»ãŒãžããããŒããã£ã¹ãããããã®ã¢ãžã¥ãŒã«ã Node ã§äœã£ãŠã¿ãŸããã(æ¬åœã¯ãLTã§çºè¡šãããã£ããã§ããã©ãã¡ãã£ãšéã«åãããã«ãªãã£ãã®ã§ãä»åã¯ãã¹ããŸããã>< )
Socket.IO Meetup ã§ããŒãã¢ããããæè§ã®æ©äŒãªã®ã§ã玹ä»ããããšæããŸãã
äœã£ãã¢ãžã¥ãŒã«
äœã£ãã®ã¯ã以äžã®3ã€ã
socket.io-zeromq
socket.io-zeromq-emitter
socket.io-zeromq-server
socket.io-zeromq
socket.io-zeromq 㯠socket.io-adapter ã ZeroMQ ã§å®è£ ãã adapter ã§ãã
ãã® adapter ã«ãããZeroMQ ã® pub/sub ãå®è£ ãããµãŒããšéä¿¡ããããšãã§ããã¡ãã»ãŒãžãè€æ°ã® Socket.IO ãµãŒãã«åæ£ããããšãããããã«ãªããŸãã
socket.io-zeromq-emitter
socket.io-zeromq-emitter 㯠Socket.IO ã«ãã£ãŠãã©ãŠã¶ã«ã€ãã³ããéãããã® ZeroMQ ã§å®è£ ãã emitter ã§ãã
socket.io-emitter ãåããã©ãŠã¶ã«ã€ãã³ããéãããã® emitter ã§ããããã¡ãã¯ãµãŒãã Redis ãã䜿ããªãã®ã§ãæ°ãã«ã¢ãžã¥ãŒã«ã ZeroMQ åãå°çšã«äœããŸããã
socket.io-zeromq-server
socket.io-zeromq-server ã¯ãZeroMQ ã® pub/sub (æ£ç¢ºã«ã¯xpub/xsub) ã§å®è£ ãããµãŒãã§ããæ¢ãã° ZeroMQ ã§ pub/sub ãåãããµãŒãã¯æ¢ãã°ãããã?ã§ãããä»åã¯ãšããããåãã°ããã£ãã®ã§ãèªåã§å®è£ ããŸããã
ã€ã¡ãŒãž
ãããã®äœã£ãã¢ãžã¥ãŒã«ããã£ãããã©ããªæãã«ã¡ãã»ãŒãžãããåãããã®ãã€ã¡ãŒãžã«ãããšãããªæãã«ãªããŸãã
åäœã確èªã§ãããµã³ãã«
èå³ããã人ã®ããã«ãåäœã確èªã§ãããµã³ãã«ãäœã£ãŠä»¥äžã® Github ã®ãªã³ã¯å ã«ãããŠãããŸãã
socket.io-zeromq-sample
ææ³
ä¹ ã ã« Socket.IO ã«è§Šã£ãèªåã§ã adatper ãäœãããšã§ Redis 以å€ã§ãã¡ãã»ãŒãžãè€æ°ã® Socket.IO ãµãŒãã«åæ£ã§ãããã®ãäœããããã«ãªã£ãã®ã¯ããããªããšæããŸãããããããã®ã³ãŒããã¿ãŠããããã°åãããã ãã©ãadapter ãš emitter ã¯ã100è¡ååŸã§å®è£ ã§ããŸãããSocket.IO ã®åããŒãã«å¯Ÿã㊠pub/sub ãããµãŒãåŽãªãã§ããã©ãããã¡ãã¯ä»åã¯ç¹ã«ææãã§äœããŸããããå®è£ 次第ã§ã¯ãRedis ãããã€ããã©ãŒãã³ã¹ãªãªã¢ã«ã¿ã€ã ã§ã¹ã±ãŒã©ãã«ãªã·ã¹ãã ãäœãããã§ããïŒ:)
ãããŠãªããªããšæã£ãã®ã¯ãsocket.io-emitter ãããã¯ã©ã€ã¢ã³ãã®æå®ã Redis çžãã«ãªã£ãŠãã®ã§ãadapterãã®ããã«æœè±¡åããŠãããã°ãsocket.io-zeromq-emitter ãäœããªããŠããã£ããããããªãã§ãããŸããpub/sub åŽã®ãµãŒããéããšããã®ã¢ãŒããã¯ãã£ã«ãã£ãŠéããããåæã« emitter äœã£ãŠãã ãããšããã¹ã¿ã³ã¹ãªã®ãããããªãããæšæ¥ã®è©±ãèããŠããæãã ãšãããããšäºæ ãèšç»ããã£ãŠããããšããããŠããã®ãããããªããšåæã«äºæž¬ã
ãããã«
ãããããšè§Šã£ãŠã¿ãŠãå®æåºŠããããæãã§å®è·µæå ¥ããŠãè¯ããããªã®ã§ãä»åŸããšããããé©åœã«äœã£ã socket.io-zeromq-server ããŸããã«å®è£ ããããEngine.IO ãšãã®ã¡ãããšã¬ã€ã€ãäœãéšåã®ã³ãŒããããã¥ã¡ã³ããèŠãªããäœãäœã£ãŠããããå®æŠæå ¥ã«åã㊠Socket.IO ãšãããããŠããããšæããŸãã
Vue.jsåãã®validatorãäœã£ãŠã¿ã
Vue.js ã«ã¯ vue-validator ãšãã plugin ã§ validation æ©èœããççæ³ãŸã§ã¯ããããšã Vue ã®æŠéèœåãå¢å¹ ããããã®ããããã ãã©ãéçºãå šç¶é²ãŸãªãã®ã§ãfork ããŠèªåã§åæã«äœã£ãŠã¿ãã
ã€ã³ã¹ããŒã«
vue-validator 㯠component ã䜿ãã°ãç°¡åã«ã€ã³ã¹ããŒã«ã§ããã
$ component install kazupon/vue-validator
bower ãšããäžé¢é³¥ã¿ãããªå€ãªé³¥ã®ãã£ã©ã§æåãªããã±ãŒãžç®¡çããŒã«ã§ã察å¿ããäºå®ã
äœ¿ãæ¹
説æããããããµã³ãã«ã³ãŒããèŠãæ¹ãã©ããªãããçè§£ããã®ãéããšæãã®ã§ã以äžã®ã³ãŒããèŒããŠããã
html
<form id="blog-form" v-validate> <input type="text" v-model="comment | length min:16 max:128"> <div> <span v-show="$validation.comment.length.max">too long your comment.</span> <span v-show="$validation.comment.length.min">too short your comment.</span> </div> </form>
js
// import(s) var Vue = require('vue'); var validator = require('vue-validator'); // install validator Vue.use(validator); new Vue({ el: '#blog-form', data: { comment: '' } });
äžèšã¯ãããã°ãªã©ã® Form ã§ã³ã¡ã³ããå ¥åããéã®ãããããã³ã¡ã³ãã® validation ã®ãµã³ãã«ã
v-validate ãšãã directive ã validation ã®å¯Ÿè±¡ãšãªã form ã div ãªã©ã®ã³ã³ããçãªã¿ã°ã«æå®ãããæå®ãããšå®è¡æã«
$validation ã ViewModel ã€ã³ã¹ã¿ã³ã¹ã«çãã
$valid ã ViewModel ã€ã³ã¹ã¿ã³ã¹ã«çãã
v-model ã§ validation filters ã䜿ããããã«ãªã
v-model ã® validation filter ã«ãã£ãŠ validation ã®çµæã $validation ã®ä¿æãããããã«ãªã
ãšããããã« Vue ã« validation æ©èœãæ¡åŒµããæãã«ãªãã
$validation
$validation ã¯ãå v-model ããšã® validation çµæã以äžãããªãã©ãŒãããã§ä¿æããã
$validation.model.filter[.filter_param]
required validation filter ã®å Žåã¯ã以äžã®ããã«ãªãã
<form id="user-form" v-validate> Password: <input type="password" v-model="password | required"><br /> <div> <span v-show="$validation.password.required">required your password.</span> </div> </form>
$valid
$valid ã¯ãv-validate ã®å š validation ã®çµæã true | false ã§ä¿æããããŠãŒã¹ã±ãŒã¹ãšããŠã¯ã以äžã®ãã㪠Form ã§ submit ãã¿ã³ã v-if ã§åçã«è¡šç€ºãããããªãå šãŠã® validation ããã¹ããŠããªããšé§ç®ãªã±ãŒã¹ã§å©çšãããšããã
<form id="user-form" v-validate> ID: <input type="text" v-model="id | required | length min:3 max:16"><br /> Password: <input type="password" v-model="password | required | length min:8 max:16"><br /> <input type="submit" value="send" v-if="$valid"> <div> <span v-show="$validation.id.required">required your ID.</span> <span v-show="$validation.id.length.min">too short your ID.</span> <span v-show="$validation.id.length.max">too long your ID.</span> <span v-show="$validation.password.required">required your password.</span> <span v-show="$validation.password.length.min">too short your password.</span> <span v-show="$validation.password.length.max">too long your password.</span> </div> </form>
validation filters
vue-validator ã§å©çšã§ãã validation filter ã¯ä»¥äžã«ç€ºã5ã€ã
required
pattern
length
numeric
validator
1. required
required ã¯å€ãå ¥åãããŠãããã©ãã validate ãã validation filterã
<form id="user-form" v-validate> Password: <input type="password" v-model="password | required"><br /> <div> <span v-show="$validation.password.required">required your password.</span> </div> </form>
2. pattern
pattern ã¯å ¥åãããå€ããã©ã¡ãŒã¿ãšããŠæå®ããæ£èŠè¡šçŸã®ãã©ãŒãããã©ãããã©ãã validate ãã validation filterã
<form id="user-form" v-validate> Zip: <input type="text" v-model="zip | pattern /^[0-9]{3}-[0-9]{4}$/"><br /> <div> <span v-show="$validation.zip.pattern">Invalid format of your zip code.</span> </div> </form>
3. length
length ã¯å ¥åãããæååã®é·ãã validate ãã validation filterãlength validate filter ã«ã¯ä»¥äžã®ãããªãã©ã¡ãŒã¿
min: æååã®æå°ã®é·ã
max: æååã®æå€§ã®é·ã
ãæå®ããããšãã§ããã
<form id="blog-form" v-validate> <input type="text" v-model="comment | length min:16 max:128"> <div> <span v-show="$validation.comment.max">too long your comment.</span> <span v-show="$validation.comment.min">too short your comment.</span> </div> </form>
4. numeric
length ã¯å ¥åãããæååãæ°å€ãã©ãã validate ãã validation filterãnumeric validate filter ã«ã¯ä»¥äžã®ãã©ã¡ãŒã¿ãæå®ã§ããã
min: å ¥åããå€ã®æå°
max: å ¥åããå€ã®æå€§
å ¥åããå€ããnumeric ã§ã¯ãªãå Žåã¯ãvalue ã true ã«ãªãã
<form id="config-form" v-validate> <input type="text" v-model="threshold | numeric min:0 max:100"> <div> <span v-show="$validation.threshold.numeric.min">too small threshold.</span> <span v-show="$validation.threshold.numeric.min">too big threshold.</span> <span v-show="$validation.threshold.numeric.value">Invalid threshold value.</span> </div> </form>
5. validator
validator ã¯ãã©ã¡ãŒã¿ã«æå®ããã«ã¹ã¿ã 㪠validation 颿°ãå®è¡ã㊠validate ãããvalidate filterãç¹æ®ãª validation ãå¿ èŠãªå Žåã«å©çšãããšäŸ¿å©ã
html
<form id="blog-form" v-validate> <input type="text" v-model="comment | validator validateCustom"> <div> <span v-show="$validation.comment.validator.validateCustom">invalid custom</span> </div> </form>
js
new Vue({ el: '#blog-form', data: { comment: '' }, methods: { // Specify custom validate function validateCustom: function (val) { // write custom validation here as follows this.$validation['comment.validator.validateCustom'] = !(0 < val.length & val.length < 3) return val; } } })
TODO
ä»åŸã®TODOãšããŠã¯ä»¥äžã®ãšããã
bower ã®ãµããŒã
v-model æ¯ã® $validã$dirty
validation filter name ã®å€æŽãªãã·ã§ã³
$validation ããããã£åã®å€æŽãªãã·ã§ã³
ãããã«
vue-validator ã§ããããã£ã€ãã§ãšã€ãã€ã!ã£ãŠããæãã§å®è£ ããéšåãããã®ã§ããã°ããããããããŸãããã²ãšéããvalidation ã®åºæ¬çãªãã®ãå®è£ ããã®ã§ãfork å ã®ãªãªãžãã«ã®æ¹ã« PullRequest éã£ãŠãèŠãŠããã£ãŠãããšããã§ãã
èå³ããã人ã¯ããã²äœ¿ã£ãŠã¿ãŠããã£ãŒãããã¯éã£ãŠããããã°ãšã:)
宣äŒ
vue-validator ã¯äžéšãæ¥åã®æéã䜿ã£ãŠãã®ã§ãã¡ãããšäŒç€Ÿã®å®£äŒã
åŒç€ŸCUUSOO SYSTEM ã§ã¯ãã£ããã« cuusoo.com ã®UI/UXã®æ¹åããæäŒãããŠããããã¶ã€ããŒãããåéããŠãããŸãããã«ã¿ã€ã ãªç€Ÿå¡ã§ãªããŠããããªãŒã®æ¹ã§ãæè¿ã§ãã
ãã®ããã°ã®èªãã§ãã人ã§ç¥ãåãã«ãã¶ã€ããŒããããããã玹ä»ããŠããããšå€§å€ãããããã§ãïŒ
èå³ãããæ¹ã¯ããããœããŸã§é£çµ¡ãã°ããåŸ ã¡ããŠãããŸãã
Vue.jsåãã®i18nãªpluginäœã£ãŠã¿ã
Vue.js ã䜿ã£ããããžã§ã¯ãã§ i18n 察å¿ãå¿ èŠã«ãªãã®ã§ãvue-i18n ãšãããã©ã°ã€ã³äœã£ãŠã¿ãã
äœ¿ãæ¹
äœ¿ãæ¹ã¯ãããªã«é£ãããªãã以äžã®ããã« Github ã® README.md ã«æžããŠãããšããã«ã³ãŒãèªãã§ããã°ããã
ã€ã³ã¹ããŒã«
$ component install kazupon/vue-i18n
javascript
// imports var Vue = require('vue'); var i18n = require('vue-i18n'); // ready translated resources var resources = { en: { message: { hello: 'the world' } }, ja: { message: { hello: 'ã¶ã»ã¯ãŒã«ã' } } }; // set plugin Vue.use(i18n, { lang: 'ja', // set translate target language, default 'en' resources: resources // set localization resources }); // create instance new Vue({ el: '#test-i18n' });
Javascript åŽãšããŠã¯ãtranslate ã«å¿ èŠãªãªãœãŒã¹ãæºåããŠãVue.use ã§ã€ã³ããŒããããã©ã°ã€ã³ãã»ããããŠãåŸã¯ã€ã³ã¹ã¿ã³ã¹åããã ãã
ãã³ãã¬ãŒã
ãã³ãã¬ãŒãã¯ãããªæãã
<div id="test-i18n" class="message"> <p v-t="message.hello"></p> </div>
vue-i18n ã§æ¡åŒµãã v-t ãšãã directive ã䜿ã£ãŠãRails ã®ãããªæãã§ localize ãããªãœãŒã¹ã®ãã¹ãæå®ãããããªæãã§èšå®ããã
å®è¡çµæ
äžèšã¢ãã¢ãããã©ãŠã¶ã§åäœããããšãããªæãã«ãªãã
<div id="test-i18n" class="message"> <p>ã¶ã»ã¯ãŒã«ã</p> </div>
ãã®ãµã³ãã«ã®ã³ãŒã
vue-i18n ã® example ã«ãããŠãããŸãã
泚æäºé
vue-i18n ã§æ¡åŒµãã v-t 㯠literal 㪠directive ã§ãããªã®ã§ãv-text ãšãã£ããã«äœ¿ã£ãŠããŸããšããã£ã¡ã§äžæžããããŠããŸãã®ã§ããã£ããã«äœ¿ããªãæ¹ãããã ãã¹ãã³ãŒãã«ãäžå¿ã©ããªåäœã«ãªããã©ãããæžããŠãããã
v-text ã§ãã§ããã®ã«ãªãã§ããããäœã£ãã®?
DBãªã©ã®ããŒã¿ãœãŒã¹ããã²ã£ã±ãŠãã Model çãªããŒã¿ãšæç€ºçã«åããããããv-text ã§ãããšãã©ãã Model ã®ããŒã¿ã§ãã©ãã i18n ãªããŒã¿ããã¡ããã¡ãããŠåããã«ãããªã£ãŠã¡ã³ããã³ã¹æ§ããããªãã§ãããïŒã ããäœããŸããã
ãããŸã
èå³ããã人ã¯ã䜿ã£ãŠã¿ãŠãã£ãŒãããã¯ããããå¬ããã§ãã:)ããããªã¯ãœã³ãŒããããããã®ãããã°ãPullRequest ãã ããã

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
äŒæ¥ã埩è·ã®ãããã
äžéšã®æ¹ã¯ãåãããšæããŸãããä»å¹ŽåºŠ1æãã CUUSOO SYSTEM ã«ã·ã¹ãã ã¢ãŒããã¯ããšã㊠join ããããšã«ãªããŸããã ãªã®ã§ãæšå¹Ž12ææ«æ¥ããã£ãŠãããªãŒã©ã³ã¹ãšããŠæŽ»åããŠãã Frapwings ãæ«ãã®éãäŒæ¥ããŸãã
Frapwings ãšããŠæŽ»åããŠãããããŸã§ã«ãäžè©±ã«ãªã£ãã¿ãªããŸããããããšãšããµã€ãã£ã³ã°ãªä»äºããã£ããã«ãããŠé ããŠããããšãããããŸããããã®å ŽãåããŸããŠã瀌ãç³ãäžããŸãã
CUUSOO SYSTEM ãšã¯ã©ããªäŒç€Ÿãªã®ïŒ
CUUSOO ãšãããã¢ãã¥ãããžã®æ ç±ãæã£ãã¯ãªãšã€ã¿ãŒããã¶ã€ããŒããŠãŒã¶ãŒãããšãåååãå®çŸããããŒãããŒïŒãã©ã³ããªãŒããŒãã¡ãŒã«ãŒïŒããããã³ã°ããŠãåååãå®çŸããããã® Web ãµãŒãã¹ãäœã£ãŠãããã³ãã£ãŒãªäŒç€Ÿã§ãã
ãªãã§åŸ©è·ããã®ïŒ
CUUSOO SYSTEM ãšã®åºäŒãã¯ãFrapwings ã§æŽ»åããŠãããšãã«ãã¡ãã£ãšããçµç±ã§ãæäŒãã®è©±ããããŠé ããã®ããã£ããã§ãããããæ©ã«ãCUUSOO ã®ã·ã¹ãã éçºã®ãæäŒãããã£ããã«ãããŠé ããŠãããŸãããCUUSOO 㯠LEGO CUUSOO ãããŒã¹ã«ã¹ã¯ã©ããããäœã£ãŠããŠãèªåãéçºã«åå ãããšãã¯ããŸãã«éçºäžã®ãšãã§ãããéçºã§ã¯ãGithubãTravisCI ã®ä»ã«ãHipChatãCoverAllsãNewRelicãšãã£ãèªåã䜿ã£ãããšããªãã¢ãã³ãªãã®ãæ¡çšããŠããŠããããããšåºæ¿çã§ããã
ãšãéçºã®ãæäŒãããŠãããããªäžãããæããããœãããã瀟å¡ãšããŠåããŸãããïŒããšã©ãã³ãŒã«ãé ããŸãããæåã¯ããŸã瀟å¡ãšããŠåãããšã¯èå³ããªãã£ãã®ã§ããããããããšè©±ããŠãããã¡ã«ãã·ã¹ãã ã俯ç°ã§ããŠéçºããªãŒãã§ãã CTO çãªãšã³ãžãã¢ã CUUSOO SYSTEM ã§å¿ èŠãšããŠããŠãèªåã®ãããŸã§ã®ãã£ãªã¢ã»ã¹ãã«ãè²·ã£ãŠãããŠãããã ãªããšçè§£ãèå³ãæ¹§ããŠããŸããã
決ãæãšãªã£ãã®ã¯ãéçºã¯å¥œãã«ãã£ãŠãããã§ããããšããã®ãé ããããšãã·ã¹ãã ãäžæ°é貫ã§ä¿¯ç°ã§ããŠãã³ãŒããæžããå 㪠CTO çãªãšã³ãžãã¢ãªãã£ãªã¢ãç®æãèªåã«ã¯ããã®è²¬ä»»éå€§ã§ææŠçãªãã£ã³ã¹ã¯ããŸãã«ãã£ãŠã€ãã§ããããããã³ãã£ãŒã§ããããæ±ºãæã§ join ããããšã決æããŸããã
CUUSOO SYSTEM ã§ãã£ã¬ã³ãžããŠããããããš
èªåãä»äœã£ãŠãããOSS ã®ãããã¯ãã§ãã Fend(äœè£ããã£ããBend) ã§ OSSãNode ã³ãã¥ããã£ã¯ãã¡ãããCUUSOO ã«è²¢ç®ã§ããããããªãšæã£ãŠããŸãããããŠã瀟åã®èªæºã§ãã"空æ³"ããŸãã«ãŠãŒã¶ãŒã"空æ³"ãããã®ãæäŸã§ãããããªãµãŒãã¹ããããã¯ãããŠãŒã¶ãŒããã«æäŸããŠè²¢ç®ã§ããããããªãšæã£ãŠããŸãã
2013ãµãããã
2013 å¹Žãæ®ããšããã仿¥ãšãªããŸããã ããããéããã§ããããïŒ
ã ãããã®æ¹ã¯ãå®å®¶ãæµ·å€ã§å¹Žæ«å¹Žå§ãéãã人ãå€ããšæããŸããããããœãäžå®¶ã¯å»å¹Žåæ§ãä»ã®èªå® ã颿±ã§ã®ãã³ããšéãããŠããäºå®ã§ãã
ä»å¹Žã«ã€ããŠæ¯ãè¿ã£ãŠã¿ãã®ã§ãããäžçªã®åºæ¥äºã¯ããã£ã±ããåäŸãçãŸããŠå®¶æãå¢ãããšããã®ã«ã€ããŸãã
æ¯åã®æé·
2æã«çãŸããŠæ©ãããã§ããã¡ã®æ¯åã¯ãããããã11ã¶æã«ãªããŸããçãŸãããŠã®ããã¯ãå®å®äººãšããããç¿ãããšãããããããªé¢šè²ã§æ³£ãããšããã§ããã£ãã®ã«ãä»ã¯ãããšããšãããã€ãã€ããŠãã€ããŸãç«ã¡ãã§ããããã«ãªã£ãŠãé¢ä¹³é£é£ã¹ãŠããšãã«ãããŸãããŸãããšãããŸããŸãŒããšãåã£ãŠææ è±ãã«åäŸããããªã£ãŠããŠããå§¿ãèŠããšãçãããã®åæã«æé·ã«é©ããããŸãã
ã¯ãããŠã®è²å
åºç£åã«æ¬ããããã§è²å ã«ã€ããŠãããããšæºåããŠããã®ã§ãããå®éã«çµéšããŠã¿ããšã»ããšå€§å€ã ãªããšå®æããŸããçãŸããæåã®é ã¯ãåŠ»ã®æ¯ããã£ã¡ã«æ¥ãŠãããŠãããããšæããŠããããããŠå©ããŠé ããã®ã§ããã劻ãšèªåãäºäººã ãã«ãªã£ãŠããã¯èªåãã¡ã ãã§ãããªãã¡ããããªã®ã§å€§å€ã§ããããããããšè²å ã§ãããªãã¡ããããªãããšã¯ããã®ã§ãããäžçªå€§å€ã ã£ãã®ããã颚åãä»ã¯ããæ®éã«æ¯åãšãã£ããã«ã颚åã«å ¥ã£ãŠããŸãããæåã®3ã¶æéãããã¯ãéŠã座ã£ãŠããªãã£ãã®ã§ãã¬ã¯ã³ã¬ã¯ã³ããªãããé ããéŠã®èŸºãæ¯ããªãããæãæãäœãæŽã£ãŠããã®ãèŠããŠããŸãã
æ¥å¹Žã«åããŠ
ä»å¹Žã¯ãããªæãã§ãåããŠã®è²å ã®å€§å€ããå³ããã€ã€ãæ¥ã æé·ããæ¯åã«çãããªããããããããšé 匵ã£ãäžå¹Žã ã£ããšæããŸãã
æ¥å¹Žã¯ãåŒãç¶ãå®¶åºãšäž¡ç«ããªããããœãããŠã§ã¢ãšã³ãžãã¢ãšããŠãå人ãããžã§ã¯ãFendããæ°ããä»äºç°å¢ã§é 匵ã£ãŠãããããšæããŸãã
æåŸã«
æ¬å¹ŽåºŠã¯ãããããäžè©±ã«ãªããŸãããæ¥å¹Žããããããé¡ãããããŸãã ããã§ã¯ããã幎æ«å¹Žå§ãïŒ