blog.koba04.comkoba04's twitter accountkoba04's GitHub account

vueifyでcomponent化

2014/10/07 @koba04

https://github.com/vuejs/vueify

vueifyというVue.js用のbrowserifyのtransformが出てたので紹介。

以前にpartialifyやstylify、coffeeify、insert-cssなどを組み合わせてHTML、JavaScript、CSSをComponent化する方法を紹介しましたがそれをさらに進めて1つのファイルで完結することが出来るようになっています。

http://blog.koba04.com/post/2014/04/17/reusable-components-by-vuejs-and-browserify/

使い方

vueifyを使うと1つのファイルにHTMLとJavaScriptとCSSを全部まとめて書くようになり、1ファイルが1Componentという形になります。

  • src/app.vue
<script lang="coffee">
  module.exports =
    data: ->
      view: "top"
</script>

<template>
  <div v-component="{{view}}" v-transition></div>
</template>

<style lang="stylus">
  #app
    .v-enter
      -webkit-animation: fadein 0.5s
      -webkit-animation-delay: 0.2s
      animation: fadein 0.5s
      animation-delay: 0.2s
      opacity: 0
    .v-leave
      -webkit-animation: fadeout 0.2s
      animation: fadeout 0.2s

  @keyframes fadein
    0%
      transform: scale(0.5)
      -webkit-transform: scale(0.5)
      opacity: 0
    50%
      transform: scale(1.2)
      -webkit-transform: scale(1.2)
      opacity: 0.7
    100%
      transform: scale(1)
      -webkit-transform: scale(1)
      opacity: 1

  @keyframes fadeout
    0%
      transform: scale(1)
      -webkit-transform: scale(1)
    100%
      transform: scale(0)
      -webkit-transform: scale(0)
</style>
➜  tree src
src
├── app.vue
├── artist.vue
├── country.vue
├── footer.vue
├── index.js
├── input-artist.vue
├── nav.vue
├── select-country.vue
├── top.vue
└── tracks.vue

https://github.com/koba04/vue-boilerplate/tree/master/src

coffeescriptとstylus以外にも、less、scss(node-sass)、jadeなどを指定することが出来ます。

syntax highlight

1つにまとめて、vueっていう拡張子付けたりするとシンタックスハイライトどうするのかという問題になりますが、SublimeTextだとこれで大丈夫なようです (使ってないのでわからないですが)

https://gist.github.com/yyx990803/9194f92d96546cebd033

vimとかの場合は...

まぁ、ちょっとしたものを作るときにvueify使ってみるのもいいのではないでしょうか。