Vue 2.0 Hello World

by Edward Tanguay

HTML

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/lodash"></script>
<div id="app">
  <p>{{ message }}</p>
  <test-component v-bind="propsFor('test-component', {name: 'Tony', place: 'LA'})"></test-component>
</div>

Babel + JSX

Vue.component('test-component', {
  props: ['name'],
  render(h) { return h('div', this.name) }
})

var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js222!'
  },
  methods: {
    propsFor(componentName, props = this.$props) {
      const cTor = this.$options.components[componentName]
      if (cTor) {
        const keys = Object.keys(cTor.options.props)
        return _.pick(props, keys) // https://lodash.com/docs/4.17.4#pick
      } else {
        return {}
      }
    }
}

})

console.log(app)