Riot.jsを始めてみた
Riot.jsとは
React.jsっぽいやつ
始め方
github.com
からダウンロードして使うか
https://cdn.jsdelivr.net/riot/3.0/riot+compiler.min.js
で読み込む
今回はver 3.0.1をダウンロードして使った。
今回書いたコード
main.html
<html> <head> <title>Riot.js</title> <script src="./riot-master/riot+compiler.js"></script> </head> <body> <layout></layout> <script type="riot/tag" src="main.tag"></script> <button type="button" onclick="riot.mount('main','sub');">change</button> <script> riot.mount('layout'); </script> </body> </html>
main.tag
<layout> <main></main> </layout> <main> <h1>Hello World</h1> </main> <sub> <h1>Hello @kwnktks0515</h1> </sub>
MeteorのUsersCollectionのpublishの仕方
つまづいたところ
autopublishを消すとコレクションが同期されなくなるので当然
Meteor.users.find().fetch();
が本来の働きをしてくれない(バージョン1.4.2.3で動かして見たところ自分のデータしか返さない)
Meteor.publish(name,function() { return Meteor.users.find(); }
をしたら同期されるはずだがusersコレクションの名前がわかならいので期待した動作をしてくれない。
解決策
Meteor.publish(null,function(){ return Meteor.users.find(); });
あとはfieldsオプションを与えるなどしてお好みのデータを生成するだけ
参考サイト
ClojureScriptでNode.jsを動かす
動かしてみたコード
Clojurescript / node.js basic examples · GitHub
追加で
(nodejs/enable-util-print!)
を入れないと動かないっぽい
参考:Quick Start · clojure/clojurescript Wiki · GitHub
非ビルドツール編
build.clj
(require 'cljs.build.api) (cljs.build.api/build "src" {:main "helloserver" :output-to "out/main.js" :output-dir "out" :target :nodejs})
Leiningen編
project.clj
(defproject cljs-test "0.1.0-SNAPSHOT" :plugins [[lein-cljsbuild "1.1.4"]] :dependencies [ [org.clojure/clojure "1.8.0"] [org.clojure/clojurescript "1.8.51"]] :cljsbuild { :builds [{ :source-paths ["src"] :compiler { :main "helloserver" :output-to "out/main.js" :output-dir "out" :target :nodejs :optimizations :none :pretty-print true}}]})