App.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <template>
  2. <div class="app">
  3. 你好
  4. <!-- 3.使用组件 -->
  5. <Demo1 name="哈哈哈" sex="女" :age="10"></Demo1>
  6. <!-- 演示ref -->
  7. <p ref="aaa">hello</p>
  8. <Demo2 ref="main"></Demo2>
  9. <Demo3 @getThing="getThing"></Demo3>
  10. <Demo4></Demo4>
  11. <Demo5></Demo5>
  12. <input type="text" v-model="keys" />
  13. <Demo6>
  14. <div v-if="keys > 20">
  15. <slot>你好啊</slot>
  16. </div>
  17. </Demo6>
  18. <hr>
  19. <Demo7>
  20. <template #header>
  21. 我是头部
  22. </template>
  23. <!-- <slot>我是主体</slot> -->
  24. <template #default>
  25. <div>
  26. 我是主体
  27. </div>
  28. </template>
  29. <template v-slot:footer>
  30. <div>
  31. 我是内容
  32. </div>
  33. </template>
  34. </Demo7>
  35. <Demo8>
  36. <template v-slot="data">
  37. <div>
  38. {{ data.obj.name }}
  39. </div>
  40. </template>
  41. </Demo8>
  42. <Demo9 title="一个小案例">
  43. <template v-slot:main="{aa}">
  44. <ul v-for="(item,index) in aa" :key='index'>
  45. <li>
  46. {{index+1}}--{{ item }}
  47. </li>
  48. </ul>
  49. </template>
  50. <slot>结尾</slot>
  51. </Demo9>
  52. <button @click="showMain">显示mixin内容</button>
  53. <hr>
  54. <hr>
  55. <Demo10/>
  56. </div>
  57. </template>
  58. <script>
  59. // 1.引用
  60. import Demo1 from "./components/Demo1.vue";
  61. import Demo2 from "./components/Demo2.vue";
  62. import Demo3 from "./components/Demo3.vue";
  63. import Demo4 from "./components/Demo4.vue";
  64. import Demo5 from "./components/Demo5.vue";
  65. import Demo6 from "./components/Demo6.vue";
  66. import Demo7 from "./components/Demo7.vue";
  67. import Demo8 from "./components/Demo8.vue";
  68. import Demo9 from "./components/Demo9.vue";
  69. import Demo10 from "./components/Demo10.vue";
  70. export default {
  71. data() {
  72. return {
  73. a: 20,
  74. keys: "",
  75. };
  76. },
  77. // created() {
  78. // console.log(this.$refs,'aaa')
  79. // },
  80. // 2.注册
  81. components: {
  82. Demo1,
  83. Demo2,
  84. Demo3,
  85. Demo4,
  86. Demo5,
  87. Demo6,
  88. Demo7,
  89. Demo8,
  90. Demo9,
  91. Demo10
  92. },
  93. methods: {
  94. getMsg() {
  95. alert("你好");
  96. },
  97. getThing(b) {
  98. console.log("今天是" + b);
  99. },
  100. },
  101. mounted() {
  102. this.$refs.main.$on("happy", this.getMsg);
  103. },
  104. };
  105. </script>
  106. <style></style>