common.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. 'use strict'
  2. const self = (global || root) // eslint-disable-line
  3. self.performance = {
  4. now: function () {
  5. var hrtime = process.hrtime()
  6. return ((hrtime[0] * 1000000 + hrtime[1] / 1000) / 1000)
  7. }
  8. }
  9. function generateGrid (rowCount, columnCount) {
  10. var grid = []
  11. for (var r = 0; r < rowCount; r++) {
  12. var row = { id: r, items: [] }
  13. for (var c = 0; c < columnCount; c++) {
  14. row.items.push({ id: (r + '-' + c) })
  15. }
  16. grid.push(row)
  17. }
  18. return grid
  19. }
  20. const gridData = generateGrid(1000, 10)
  21. module.exports = {
  22. template: '<div><h1>{{ Math.random() }}</h1><my-table></my-table></div>',
  23. components: {
  24. myTable: {
  25. data: function () {
  26. return {
  27. grid: gridData
  28. }
  29. },
  30. // template: '<table><tr v-for="row in grid"><th>123</th><td v-for="item in row.items">{{ item.id }}</td></tr></table>',
  31. template: '<table width="100%" cellspacing="2"><row v-for="row in grid" :key="row.id" :row="row"></row></table>',
  32. components: {
  33. row: {
  34. props: ['row'],
  35. template: '<tr><th>{{ Math.random() }}</th><column v-for="item in row.items" :key="item.id"></column></tr>',
  36. components: {
  37. column: {
  38. template: '<td class="item">' +
  39. // 25 plain elements for each cell
  40. '<ul class="yoyo">' +
  41. `<li v-for="i in 5" :class="'hihi' + i">` +
  42. `<span :id="i + '_' + j" v-for="j in 5">fsefs</span>` +
  43. '</li>' +
  44. '</ul>' +
  45. '</td>'
  46. }
  47. }
  48. }
  49. }
  50. }
  51. }
  52. }