Vue-Render函数理解示例

对应文档节点: https://vuefe.cn/v2/guide/render-function.html#Slots

<body>
    <div id="app">
        <div class="parent">
            <anchored-heading>
            </anchored-heading>
        </div>
    </div>
</body>

<script>
    Vue.component(‘child‘, {
        render: function (createElement) {
            // <div><slot :text="msg"></slot></div>
            //debugger;
            return createElement(‘div‘, [
                this.$scopedSlots.default({
                    text: this.msg
                })
            ])
        },
        // template: `
        //     <div class="child">
        //         <slot :text="msg"></slot>
        //     </div>
        // `,
        data: function () {
            return {
                msg: "Demo"
            }
        }

    });

    Vue.component(‘anchored-heading‘, {
        render(createElement) {
            return createElement(‘div‘, [
                createElement(‘child‘, {
                    // pass scopedSlots in the data object
                    // in the form of { name: props => VNode | Array<VNode> }
                    scopedSlots: {
                        default: function (props) {
                            debugger;
                            return createElement(‘span‘,‘hello-‘+ props.text)
                        }
                    }
                })
            ])
        },
        // template: `
        //     <div class="parent">
        //         <child>
        //             <template scope="props">
        //             <span>hello {{ props.text }}</span>
        //             </template>
        //         </child>
        //     </div>
        // `
    })

    new Vue({
        el: "#app"
    });
</script>
时间: 2024-10-11 03:57:16

Vue-Render函数理解示例的相关文章

vue render函数 函数组件化

之前创建的锚点标题组件是比较简单,没有管理或者监听任何传递给他的状态,也没有生命周期方法,它只是一个接受参数的函数 在这个例子中,我们标记组件为functional,这意味它是无状态(没有data),无实例(没有this上下文) 一个函数化组件就像这样: Vue.component('my-component', { functional: true, // 为了弥补缺少的实例 // 提供第二个参数作为上下文 render: function (createElement, context) {

Vue render函数

Vue 推荐在绝大多数情况下使用template来创建你的HTML.然而的一些场景中,你真的需要javascript的完全编程能力, 这就是render函数,它比template更接近编译器 demo Vue.component('render-demo',{ props:{ level:{ type:Number,required:true}, render:function(createElement){ return createElement('h'+this.level,this.$s

【Vue】彻底理解Vue中render函数与template的区别

一.render函数与template对比 VUE一般使用template来创建HTML,然后在有的时候,我们需要使用javascript来创建html,这时候我们需要使用render函数. 以下我们来做一个需求跟根据level等级来编写对应等级的标题 template解析 <body>   <divid="app">       <h-titlelevel=1>           <p>li</p>       </

Vue学习笔记进阶篇——Render函数

本文为转载,原文:Vue学习笔记进阶篇--Render函数 基础 Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML.然而在一些场景中,你真的需要 JavaScript 的完全编程的能力,这就是 render 函数,它比 template 更接近编译器. <h1> <a name="hello-world" href="#hello-world"> Hello world! </a> </h1>

《Vue.js实战》章9:Render函数(1)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

vue入门:(底层渲染实现render函数、实例生命周期)

vue实例渲染的底层实现 vue实例生命周期 一.vue实例渲染的底层实现 1.1实例挂载 在vue中实例挂载有两种方法:第一种在实例化vue时以el属性实现,第二种是通过vue.$mount()方法实现挂载.不管是哪种挂载都不影响vue实例化组件的执行流程和模式,只是通过vue.$mount()方法实现挂载可以更灵活的实现组件复用和挂载. 1 var vm = new Vue({ 2 el:'挂载元素id',//实例化el属性实现挂载 3 ... 4 }) 5 var vm1 = new Vu

Vue.js(12)- 霸道的render函数渲染组件

index.html <div id="app"> <p>这是index.html</p> </div> index.js // 导入全的vue // import Vue from 'vue/dist/vue.js' // 导入阉割版的vue import Vue from 'vue' import App from './app.vue' const vm = new Vue({ el: '#app', template: `<

vue实例中的render函数

在runtime-only的vue版本中使用的就是render函数,运行依赖的一般都是runtime-omly的vue,compile版本占的体积太大不适合用作运行版本.因为缺少编译器,浏览器不能直接识别.vue文件,因此在开发时会把vue相关的代码编译成浏览器识别的js,在浏览器运行时便只需要,只用来运行的runtime-only版vuejs即可. 原文地址:https://www.cnblogs.com/chujunqiao/p/11624338.html

vue中render函数的使用

render函数 vue通过 template 来创建你的 HTML.但是,在特殊情况下,这种写死的模式无法满足需求,必须需要js的编程能力.此时,需要用render来创建HTML. 什么情况下适合使用render函数 在一次封装一套通用按钮组件的工作中,按钮有四个样式(success.error.warning.default).首先,你可能会想到如下实现 <div class="btn btn-success" v-if="type === 'success'&qu