Vue 渲染函数
Posted sea-breeze
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 渲染函数相关的知识,希望对你有一定的参考价值。
Vue 推荐在绝大多数情况下使用模板来创建你的 html。然而在一些场景中,你真的需要 javascript 的完全编程的能力。这时你可以用渲染函数,它比模板更接近编译器。
一 项目结构
二 App组件
<template> <div id="app"> <fruit fruitName="Durian" :level="2"> very delicious! </fruit> </div> </template> <script> import "./components/Fruit.js"; export default name: "App" ; </script> <style lang="scss"> </style>
三 Fruit组件
import Vue from "vue"; import Durian from "./Durian.vue"; import Mongo from "./Mongo.vue"; Vue.component("fruit", props: fruitName: type: String, required: true , level: type: Number, required: true , data() return shop: "水果店" ; , render(createElement) const fruitName, level, shop, $slots, nativeClickHandler = this; const ele = fruitName === "Durian" ? Durian : Mongo; return createElement( ele, class: favorFruit: true , style: "color:gold;font-style:italic;", attrs: id: "favorFruit" , nativeOn: click: nativeClickHandler , scopedSlots: shop(props) return createElement("h6", shop); , [createElement("h" + level, fruitName), $slots.default] ); , methods: nativeClickHandler() console.log("native click"); );
四 Durian组件
<template> <div> <slot/> <slot name="shop"/> </div> </template> <script> export default name: "Durian" ; </script>
五 Mongo组件
<template> <div> <slot/> <slot name="shop"/> </div> </template> <script> export default name: "Mango" ; </script>
六 运行效果
以上是关于Vue 渲染函数的主要内容,如果未能解决你的问题,请参考以下文章