28 lines
551 B
Vue
28 lines
551 B
Vue
import PropTypes from '../../_util/vue-types'
|
||
|
||
export default {
|
||
props: {
|
||
children: PropTypes.func.def(() => null),
|
||
},
|
||
methods: {
|
||
getRef (name) {
|
||
return this[name]
|
||
},
|
||
|
||
saveRef (name) {
|
||
return (node) => {
|
||
if (node) {
|
||
this[name] = node
|
||
}
|
||
}
|
||
},
|
||
},
|
||
|
||
render () {
|
||
// 每次都new一个新的function,避免子节点不能重新渲染
|
||
const saveRef = (name) => this.saveRef(name)
|
||
const getRef = (name) => this.getRef(name)
|
||
return this.children(saveRef, getRef)
|
||
},
|
||
}
|