• vue组件传参


    一、vue组件

            1、定义与使用

    1. //CounterCom.vue
    2. //App.vue
    3. //01导入组件
    4. import CounterCom from './components/CounterCom.vue'
    5. //02注册组件
    6. components:{CounterCom}
    7. //03使用组件
    8. <CounterCom>CounterCom>
    9. <counter-com>counter-com>

            2、父传子

               使用props,父传给子的数据是只读的(做默认值,读取显示)不能修改

    1. //App.vue中
    2. <CounterCom :num="10">
    3. //CounterCom.vue组件中
    4. // 01.props接收父组件中的参数并定义默认值
    5. props:{"num":{type:Number,default:1},
    6. //02 使用参数num
    7. data(){
    8. return{counter:this.num}
    9. }

            3、子传父

               使用的事件$emit

       $emit(事件名,事件值)发送一次事件,事件名{counterchange}和事件值{counter}是自定义的

       $event固定写法,事件的值{counterchange  事件的值,也是子组件$emit的第二个参数}

    1. //App.vue
    2. @counterchange="m=$event">
    3. //CounterCom.vue
    4. {{counter}}

    二、数据传参

            1、父传子

             2、子传父

     三、组件的设计

            1、组件的设计

               props: 默认值:value,最大值:max,最小值:min,步进值:step(一次加多少)

               data:   被改变的值:num

               methods: 加:add,减:minus

               事件:numchange(数字发生变化)

    1. <template>
    2. <span>
    3. <button @click="minus" :disabled="num<=min">-button>
    4. <input type="text" v-model.number="num">
    5. <button @click="add" :disabled="num>=max">+button>
    6. span>
    7. template>
    8. <script>
    9. export default{
    10. props:{
    11. // 定义props.value 默认值
    12. value:{type:Number,default:1},
    13. max:{type:Number,default:10},
    14. min:{type:Number,default:1},
    15. step:{type:Number,default:1}
    16. },
    17. data(){
    18. return{
    19. // 使用props的value值
    20. num:this.value
    21. }
    22. },
    23. methods:{
    24. // 实现添加方法
    25. add(){
    26. this.num+=this.step;
    27. // 当数据变化时,发送一个numchange
    28. this.$emit("numchange",this.num);
    29. },
    30. // 实现减1方法
    31. minus(){
    32. this.num--;
    33. this.$emit("numchange",this.num);
    34. },
    35. }
    36. }
    37. script>

            2、组件的设计SwiperCom

               props:gallery  传入图片的数组,inter  间隔时间,   current  当前第几张幻灯片

               data: index  当前显示第几张

               methods: auto 自动播放,check  检查边界

               事件

    1. <template>
    2. <div class="swiper">
    3. <div class="swiperitem">幻灯片<img>div>
    4. <div class="controls">上一张,下一张div>
    5. <div class="thumbs">小圆点div>
    6. div>
    7. template>

            3、组件的设计文字滚动时间MarrQuee

               props:str 滚动的文本,inter  间隔时间

               data:msg

               methods:auto  自动播放

  • 相关阅读:
    黑马全套Java教程(十一)
    并发编程day01
    挂载硬盘相关操作-linux004
    SQL注入基础
    cesium火箭发射,模型控制,模型动画,模型移动
    DevOps平台建设的关键点是什么?
    程序员转业指南 - 当文员
    【数据结构】树与二叉树
    springmvc复习(第一天)(黑马版)
    基于springboot+vue实现乌鲁木齐南山冰雪旅游服务网管理系统项目【项目源码+论文说明】
  • 原文地址:https://blog.csdn.net/fagdg/article/details/126022089