extend.html 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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:vmData">{{msg + model.msg}}</div>
  16. </div>
  17. <div id="child">
  18. <div class="cvm" v-component="vm-test">{{vmMsg}}</div>
  19. </div>
  20. <script>
  21. var log = document.getElementById('log')
  22. var T = Vue.extend({
  23. created: function () {
  24. log.textContent += ' T created'
  25. },
  26. ready: function () {
  27. log.textContent += ' T ready'
  28. },
  29. components: {
  30. 'vm-test': {
  31. scope: {
  32. vmMsg: 'component works'
  33. }
  34. },
  35. 'vm-w-model': {
  36. scope : {
  37. msg: 'component with model '
  38. }
  39. }
  40. },
  41. partials: {
  42. 'partial-test': '{{partialMsg}}'
  43. },
  44. directives: {
  45. hola: function (value) {
  46. this.el.innerHTML = value + ' works'
  47. }
  48. },
  49. filters: {
  50. nodigits: function (value) {
  51. return value.replace(/\d/g, '')
  52. }
  53. }
  54. })
  55. var C = T.extend({
  56. created: function () {
  57. log.textContent += ' C created'
  58. },
  59. ready: function () {
  60. log.textContent += ' C ready'
  61. }
  62. })
  63. new T({
  64. el: '#test',
  65. scope: {
  66. dirMsg: 'directive',
  67. filterMsg: 'fi43l132ter5 w12345orks',
  68. partialMsg: 'partial works',
  69. vmData: {
  70. msg: 'works'
  71. }
  72. }
  73. })
  74. new C({
  75. el: '#child'
  76. })
  77. </script>
  78. </body>
  79. </html>