vue3造轮子———按钮制作遇到的重点

制作switch按钮时 我们想通过value  或者@input 事件等来传值时

如代码 ==>>以下要彭父子通信

//在父组件SweitchDemo中引入switch组件

<Switch :value = 'xxx'  @input = ' yyy = $event' />

在子组件中接收

setup(props,context){ // context是我们接收的第二个参数  我们可以通过设置它来改变input的值 

    并在父组件中用@input事件时时更新 更新的可以$event来接收   所以@click = "y = $event" 即表示y的值根据$event的值来决定
    const toogle = ()=>{

        //props.value = !props.value //这个在这里会报错 说布尔值不能赋值 它是一个常量
        context.emit('input',!props.value)
    }

return {toggle} //要想得到结果 必须要return出去
}

内部数据setup(){   

    const checked = ref(false)     

    const toggle = ()=>{       

    checked.value = !checked.value        

             //checked是常量声明不能改蛮值 但是我们可以改变它值的value   

     }

}

button组件

export defaule{
    inheritAttrs:false ;   //取消button默认传过来的点击事件 
}

<button  v-bind = '$attrs'> //先取消 再传到button按钮上面  --如果template里面加了div 默认点击事件传到div上面的

    <slot/>//插槽位置

</button>


第二种方法 绑定不同的元素

Teleport的作用

当我们给组件外面加上teleport标签时 然后写上to='到哪个标签'  下图是我不想当现在这个人的儿子了 

我想到body里面去 给body当儿子

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 初始架构 vite 文档给出的命令是npm init vite-app yarn create vite-app...
    shirley_ee84阅读 4,162评论 0 0
  • 一些概念 Vue Composition API(VCA) 在实现上也其实只是把 Vue 本身就有的响应式系统更显...
    前端精阅读 12,212评论 0 23
  • # Vue3的改进及特点 1.性能的提升:打包大小减少 41%,初次渲染快 55%,更新快 133%,内存使用减少...
    华尔街的主导曲阅读 20,197评论 1 3
  • 基础部分 模版语法 1.computed和watch的区别 计算属性computed :支持缓存,data数据不变...
    王蕾_fd49阅读 3,777评论 0 0
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 11,037评论 0 5

友情链接更多精彩内容