mixins使用混入引入组件,并可以使用公共函数。组件类同名函数可以替代公共函数。使用$ref获得子元素数据和元素dom节点。使用$parents获得父元素数据。slot插槽的使用
父组件:
<template> <div class="box"> <Header > <div slot="left">你好</div> <div slot="right" @click="userFn">你好</div> </Header> <div class="content"> <h1 ref="title" id="title">标题</h1> <p ref="desc" id="desc">段落描述</p> <button @click="getDOM">获取DOM节点</button> <Reftest ref="test"/> <button @click="getData">获取子元素数据</button> </div> </div> </template> <script> import Header from '@/mixins/header' import Reftest from '@/mixins/header' export default { mixins:[Header,Reftest], data(){ return { message:'父组件' } }, methods: { getDOM () { console.log(document.getElementById('title')) console.log(document.getElementById('desc')) console.log('----------------------') console.log(this.$refs.title) console.log(this.$refs.desc) }, getData(){ this.$refs.test.msg='奶牛' console.log(this.$refs.test.msg) }, } } </script>
子组件
<template> <header class="header"> <ul> <li> <slot name="left">左</slot> </li> <li> <slot>中</slot> </li> <li> <slot name="right">右</slot> </li> </ul> </header> </template> <style lang="scss"> .header { width: 100%; height: 44px; background-color: #f66; margin-bottom: 10px; ul { width: 100%; height: 100%; display: flex; li{ width: auto; height: 100%; display: flex; justify-content: center; align-items: center; &:nth-child(1) { width: 50px; } &:nth-child(2) { flex: 1; } &:nth-child(3) { width: 50px; } } } } </style>
<template> <div> <button @click="getData">子组件直接获取父组件的数据</button> </div> </template> <script> export default { data () { return { msg: 'child-----------------------------' } }, methods: { getData () { console.log(this.$parent.message) } } } </script>
Header.js
import Header from '@/components/Header'
import Reftest from '@/components/Reftest'
export default {
components: {
Header,
Reftest
},
methods: {
userFn () {
console.log('个人中心')
}
}
}
长风破浪会有时,直挂云帆济沧海
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!