// register the grid component Vue.component('demo-grid', { template: '#grid-template', replace: true, props: { data: Array, columns: Array, filterKey: String }, data: function () { var reversed = {} this.columns.forEach(function (key) { reversed[key] = false }) return { sortKey: '', reversed: reversed } }, methods: { sortBy: function (key) { this.sortKey = key this.reversed[key] = !this.reversed[key] } } }) // bootstrap the demo var demo = new Vue({ el: '#demo', data: { searchQuery: '', gridColumns: ['name', 'power'], gridData: [ { name: 'Chuck Norris', power: Infinity }, { name: 'Bruce Lee', power: 9000 }, { name: 'Jacky Chang', power: 7000 }, { name: 'Jet Li', power: 8000 } ] } })