W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
此更改不會影響 <template>
用戶。
以下是更改的簡要總結(jié):
h
現(xiàn)在全局導入,而不是作為參數(shù)傳遞給渲染函數(shù)更多信息,請繼續(xù)閱讀!
在 2.x 中,e render
函數(shù)將自動接收 h
函數(shù) (它是 createElement
的常規(guī)別名) 作為參數(shù):
// Vue 2 渲染函數(shù)示例
export default {
render(h) {
return h('div')
}
}
在 3.x 中,h
現(xiàn)在是全局導入的,而不是作為參數(shù)自動傳遞。
// Vue 3 渲染函數(shù)示例
import { h } from 'vue'
export default {
render() {
return h('div')
}
}
在 2.x 中,render
函數(shù)自動接收諸如 h
之類的參數(shù)。
// Vue 2 渲染函數(shù)示例
export default {
render(h) {
return h('div')
}
}
在 3.x 中,由于 render
函數(shù)不再接收任何參數(shù),它將主要用于 setup()
函數(shù)內(nèi)部。這還有一個好處:可以訪問作用域中聲明的響應(yīng)式狀態(tài)和函數(shù),以及傳遞給 setup()
的參數(shù)。
import { h, reactive } from 'vue'
export default {
setup(props, { slots, attrs, emit }) {
const state = reactive({
count: 0
})
function increment() {
state.count++
}
// 返回render函數(shù)
return () =>
h(
'div',
{
onClick: increment
},
state.count
)
}
}
有關(guān) setup()
如何工作的詳細信息,參考組合式 API 指南。
在 2.x 中,domProps
包含 VNode props 中的嵌套列表:
// 2.x
{
class: ['button', 'is-outlined'],
style: { color: '#34495E' },
attrs: { id: 'submit' },
domProps: { innerHTML: '' },
on: { click: submitForm },
key: 'submit-button'
}
在 3.x 中,整個 VNode props 結(jié)構(gòu)是扁平的,使用上面的例子,下面是它現(xiàn)在的樣子
// 3.x 語法
{
class: ['button', 'is-outlined'],
style: { color: '#34495E' },
id: 'submit',
innerHTML: '',
onClick: submitForm,
key: 'submit-button'
}
全局導入 h
意味著任何包含 Vue 組件的庫都將在某處包含 import { h } from 'vue'
,因此,這會帶來一些開銷,因為它需要庫作者在其構(gòu)建設(shè)置中正確配置 Vue 的外部化:
見 Render 函數(shù)指南更詳細的文檔!
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: