App.vue 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <div id="app">
  3. <input v-model="day" />
  4. <div @click="showMsg" ref="aaa">标签</div>
  5. <Demo2 name="LiLi" sex="女" :age="20"></Demo2>
  6. <!--
  7. 组件通信:
  8. 父组件 template标签中 ref="名称<aaa>"
  9. mounted() this.$refs.aaa.$on("自定义的方法名<xx>",传送的方法)
  10. -->
  11. <Demo1 ref="getMain"></Demo1>
  12. <!-- <button >按钮</button> -->
  13. <hr>
  14. <Demo3 ref="getThing"></Demo3>
  15. <hr>
  16. <Demo4 @getName="getName"></Demo4>
  17. <Demo5></Demo5>
  18. <Demo6></Demo6>
  19. </div>
  20. </template>
  21. <script>
  22. import Demo1 from './components/Demo1.vue';
  23. import Demo2 from './components/Demo2.vue';
  24. import Demo3 from './components/Demo3.vue';
  25. import Demo4 from './components/Demo4.vue';
  26. import Demo5 from './components/Demo5.vue';
  27. import Demo6 from './components/Demo6.vue';
  28. export default {
  29. name:"App",
  30. data() {
  31. return {
  32. day:"星期三",
  33. happy:"开心"
  34. }
  35. },
  36. components:{
  37. Demo1,
  38. Demo2,
  39. Demo3,
  40. Demo4,
  41. Demo5,
  42. Demo6
  43. },
  44. created() {
  45. console.log(this.day)
  46. },
  47. methods: {
  48. aa() {
  49. console.log("成功了")
  50. },
  51. showMsg() {
  52. console.log(this.$refs.aaa,'ref属性')
  53. },
  54. showMain() {
  55. alert("看屏幕")
  56. },
  57. getName(name) {
  58. console.log(name + '吃的真香');
  59. }
  60. },
  61. mounted() {
  62. this.$refs.getMain.$on("aab",this.aa)
  63. // console.log(this.$refs.xxx)
  64. this.$refs.getThing.$on("happy",this.showMain)
  65. },
  66. }
  67. </script>
  68. <style>
  69. /* #app {
  70. font-family: Avenir, Helvetica, Arial, sans-serif;
  71. -webkit-font-smoothing: antialiased;
  72. -moz-osx-font-smoothing: grayscale;
  73. text-align: center;
  74. color: #2c3e50;
  75. margin-top: 60px;
  76. } */
  77. </style>