extend.html 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8">
  6. <script src="../../../dist/vue.js"></script>
  7. </head>
  8. <body>
  9. <div id="log"></div>
  10. <div id="test">
  11. <div class="dir" v-hola="dirMsg"></div>
  12. <div class="filter">{{filterMsg | nodigits}}</div>
  13. <div class="partial" v-partial="partial-test"></div>
  14. <div class="vm" v-component="vm-test">{{vmMsg}}</div>
  15. <div class="vm-w-model" v-component="vm-w-model" v-with="vmData">{{selfMsg + msg}}</div>
  16. </div>
  17. <div id="child">
  18. <div class="cvm" v-component="vm-test">{{vmMsg}}</div>
  19. </div>
  20. <script>
  21. Vue.config({debug:true})
  22. var log = document.getElementById('log')
  23. var T = Vue.extend({
  24. created: function () {
  25. log.textContent += ' T created'
  26. },
  27. ready: function () {
  28. log.textContent += ' T ready'
  29. },
  30. components: {
  31. 'vm-test': {
  32. data: {
  33. vmMsg: 'component works'
  34. }
  35. },
  36. 'vm-w-model': {
  37. data : {
  38. selfMsg: 'component with model '
  39. }
  40. }
  41. },
  42. partials: {
  43. 'partial-test': '{{partialMsg}}'
  44. },
  45. directives: {
  46. hola: function (value) {
  47. this.el.innerHTML = value + ' works'
  48. }
  49. },
  50. filters: {
  51. nodigits: function (value) {
  52. return value.replace(/\d/g, '')
  53. }
  54. }
  55. })
  56. var C = T.extend({
  57. created: function () {
  58. log.textContent += ' C created'
  59. },
  60. ready: function () {
  61. log.textContent += ' C ready'
  62. }
  63. })
  64. var test = new T({
  65. el: '#test',
  66. data: {
  67. dirMsg: 'directive',
  68. filterMsg: 'fi43l132ter5 w12345orks',
  69. partialMsg: 'partial works',
  70. vmData: {
  71. msg: 'works'
  72. }
  73. }
  74. })
  75. new C({
  76. el: '#child'
  77. })
  78. </script>
  79. </body>
  80. </html>