Skip to content
GonzihPublic

About

Configure Vue.js components using ClojureScript, manage global state using Atoms.

Topics

Resources

Stars

187 stars

Watchers

7 watching

Forks

Latest commit

 

History

37 Commits

Folders and files

Repository files navigation

glue

Downloads Dependencies Status Build License Clojars Project

Trying to glue cljs and vue together.

Overview

So far main idea is just to configure components via clojurescript.

Demo

Check out the glue cljs demo app for the usage example.

Example

    <template id="sample-template">
        <div>
            <span>{{ label }} | </span>
            <span>{{ counterLabel }}</span>
            <button @click="clickMe">Click</button>
            <hr/>
        </div>
    </template>

    <div id="app">
        <sample-template label="sample button"></sample-template>
    </div>
(ns app.core
  (:refer-clojure :exclude [atom])
  (:require [glue.api :as g :refer [atom]]))

(g/defcomponent
  :sample-component
  {:template "#sample-template"
   :props [:label]
   :state (fn [] {:counter (atom 0)})
   :computed {:counter-label (fn [this state]
                               (str @(:counter state) " clicks"))}
   :methods {:click-me (fn [this state _]
                         (println "Click happened on" (g/prop this :label))
                         (swap! (:counter state) inc))}})

(g/vue {:el "#app"})

License

Copyright © 2017-2019 Max Gonzih gonzih @ gmail.com

Distributed under the MIT license.

About

Configure Vue.js components using ClojureScript, manage global state using Atoms.

Topics

Resources

Stars

187 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages