Vue Render函數(shù)創(chuàng)建DOM節(jié)點代碼實例
雖然在render里使用createElement函數(shù)創(chuàng)建DOM節(jié)點不是很直觀,但是在部分獨立組件的設(shè)計中還是可以滿足一些特殊需求的。一個簡單的render示例如下:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<my-component :list="list"></my-component>
</div>
<script src="vue.js"></script>
<script>
Vue.component('my-component', {
props: {
list: {
type: Array,
default: () => []
}
},
render(createElement) {
if (this.list.length) {
return createElement('ul', this.list.map(item => createElement('li', item)))
} else {
return createElement('p', 'Empty list')
}
}
})
new Vue({
el: '#app',
data: {
list: ['html', 'css', 'javascript']
}
})
</script>
</body>
</html>
另外,由于v-if,v-else,v-show等指令都無法在render里使用,需要自己手動實現(xiàn),拿常用的v-model舉個栗子:
Vue.component('my-component', {
data() {
return {
message: ''
}
},
render(createElement) {
return createElement(
'div',
[
createElement(
'input',
{
on: {
input: e => this.message = e.target.value
}
}
),
createElement('p', this.message)
]
)
}
})
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue深入解析之render function code詳解
vue對大家來說應(yīng)該再熟悉不過了,下面這篇文章主要給大家深入的解析了vue之render function code的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-07-07
vue3中使用router路由實現(xiàn)跳轉(zhuǎn)傳參的方法
這篇文章主要介紹了vue3中使用router路由實現(xiàn)跳轉(zhuǎn)傳參的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
Nuxt 嵌套路由nuxt-child組件用法(父子頁面組件的傳值)
這篇文章主要介紹了Nuxt 嵌套路由nuxt-child組件用法(父子頁面組件的傳值),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
創(chuàng)建項目及包管理yarn create vite源碼學(xué)習(xí)
這篇文章主要為大家介紹了創(chuàng)建項目及包管理yarn create vite源碼學(xué)習(xí)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Vue 2.5.2下axios + express 本地請求404的解決方法
下面小編就為大家分享一篇Vue 2.5.2下axios + express 本地請求404的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02

