登录  /  注册
首页 > web前端 > js教程 > 正文

使用render方法的图文详解

php中世界最好的语言
发布: 2018-03-23 11:47:33
原创
9734人浏览过

这次给大家带来使用render方法的图文详解,使用render方法的注意事项有哪些,下面就是实战案例,一起来看一下。

先说一下对官网上demo的个人理解:

nbsp;html>


  <title>Vue的render方法说明</title>
  <script></script><p>
  <child>
    hello world
  </child></p>
<script>
  <p>
    <h1 v-if="level === 1">
      <slot>
    
    <h2 v-if="level === 2">
      <slot>
    
    <h3 v-if="level === 3">
      <slot>
    
    <h4 v-if="level === 4">
      <slot>
    
    <h5 v-if="level === 5">
      <slot>
    
    <h6 v-if="level === 6">
      <slot>
    
  
</script><script>
Vue.component(&#39;child&#39;, {
  template: &#39;#anchored-heading-template&#39;,
  props: {
    level: {
      type: Number,
      required: true
    }
  }
});
  new Vue({
    el: "#app"
  })
</script>
登录后复制

虽然使用template定义组件的方法非常的直观,但是这样会造成代码过长。可以使用render的方法

nbsp;html&gt;


  <title>Vue的render方法说明</title>
  <script></script><p>
  <child>
    hello world
  </child></p>
<script>
Vue.component(&#39;child&#39;, {
  render:function (createElement) {
    var body=this.$slots.default;
    //this.$slots返回了一个组件分发下来的元素和内容
    //this.$slots.default返回了具名的内容
    return createElement(
      &#39;h&#39;+this.level,
      //this.level是利用v-bind注入到组件中的level
      body
    )
  },
  //因为vue中组件父组件无法向子组件注入内容。所以我们需要通过
  //v-bind定义一个key,value向子组件注入内容。所要接收的值也需要在定义组件时的props属性中的定义一下
  props:{
    level:{
    }
  }
});
  new Vue({
    el: "#app"
  })
</script>
登录后复制

下面是一个slot具名分发的demo:介绍了creatElement的用法:

nbsp;html&gt;


  <title>Vue的render方法说明</title>
  <script></script><p>
  <child>
    <p>this is header</p>
    <p>this is center</p>
    <p>this is footer</p>
  </child></p>
<script>
  Vue.component(&#39;child&#39;, {
    render: function (createElement) {
     var header=this.$slots.header;
     var center=this.$slots.center;
     var footer=this.$slots.footer;
//createElement第一个参数是标签名,第二个参数是值
     return createElement(&#39;p&#39;,[
       createElement(&#39;p&#39;, header),
       createElement(&#39;p&#39;, center),
       createElement(&#39;p&#39;, footer),
     ])
    }
  });
  new Vue({
    el: "#app"
  })
</script>
登录后复制

所创建的组件的demo结果如下:

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

百度地图里显示marker与Polyline

怎么开发微信小程序的获取用户手机号功能

以上就是使用render方法的图文详解的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号