组件是可复用的 Vue 实例,开发过程中,把重复功能封装成组件,来达到快速、便捷开发项目。

    1. <div id="app">
    2. <button-counter title="title1 : " @clicknow="clicknow">
    3. <h2>hi...h2</h2>
    4. </button-counter>
    5. <button-counter title="title2 : "></button-counter>
    6. </div>
    7. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    8. <script type="text/javascript">
    9. Vue.component('button-counter', {
    10. props: ['title'],//通过props向子组件传递数据
    11. data: function () {
    12. return {
    13. count: 0
    14. }
    15. },
    16. template: '<div><h1>hi...</h1><button v-on:click="clickfun">{{title}} You clicked me {{ count }} times.</button><slot></slot></div>',
    17. methods:{
    18. clickfun : function () {
    19. this.count ++;
    20. this.$emit('clicknow', this.count);//子组件传参给父组件函数名
    21. }
    22. }
    23. })
    24. var vm = new Vue({
    25. el : "#app",
    26. data : {
    27. },
    28. methods:{
    29. clicknow : function (e) {//控制台输出子组件传递过来的数据
    30. console.log(e);
    31. }
    32. }
    33. });
    34. </script>