最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

使用render方法的图文详解

来源:动视网 责编:小采 时间:2020-11-27 19:58:31
文档

使用render方法的图文详解

使用render方法的图文详解:这次给大家带来使用render方法的图文详解,使用render方法的注意事项有哪些,下面就是实战案例,一起来看一下。先说一下对官网上demo的个人理解:<!DOCTYPE html> <html> <head> <title>Vue的render方法说
推荐度:
导读使用render方法的图文详解:这次给大家带来使用render方法的图文详解,使用render方法的注意事项有哪些,下面就是实战案例,一起来看一下。先说一下对官网上demo的个人理解:<!DOCTYPE html> <html> <head> <title>Vue的render方法说
 这次给大家带来使用render方法的图文详解,使用render方法的注意事项有哪些,下面就是实战案例,一起来看一下。

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

<!DOCTYPE html>
<html>
<head>
 <title>Vue的render方法说明</title>
 <script src="vue.js"></script>
</head>
<body>
<p id="app">
 <child :level="1">
 hello world
 </child>
</p>
<script type="text/x-template" id="anchored-heading-template">
 <p>
 <h1 v-if="level === 1">
 <slot></slot>
 </h1>
 <h2 v-if="level === 2">
 <slot></slot>
 </h2>
 <h3 v-if="level === 3">
 <slot></slot>
 </h3>
 <h4 v-if="level === 4">
 <slot></slot>
 </h4>
 <h5 v-if="level === 5">
 <slot></slot>
 </h5>
 <h6 v-if="level === 6">
 <slot></slot>
 </h6>
 </p>
</script>
<script type="text/javascript">
Vue.component('child', {
 template: '#anchored-heading-template',
 props: {
 level: {
 type: Number,
 required: true
 }
 }
});
 new Vue({
 el: "#app"
 })
</script>
</body>
</html>

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

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

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

<!DOCTYPE html>
<html>
<head>
 <title>Vue的render方法说明</title>
 <script src="vue.js"></script>
</head>
<body>
<p id="app">
 <child>
 <p slot="header">this is header</p>
 <p slot="center">this is center</p>
 <p slot="footer">this is footer</p>
 </child>
</p>
<script type="text/javascript">
 Vue.component('child', {
 render: function (createElement) {
 var header=this.$slots.header;
 var center=this.$slots.center;
 var footer=this.$slots.footer;
//createElement第一个参数是标签名,第二个参数是值
 return createElement('p',[
 createElement('p', header),
 createElement('p', center),
 createElement('p', footer),
 ])
 }
 });
 new Vue({
 el: "#app"
 })
</script>
</body>
</html>

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

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

推荐阅读:

百度地图里显示marker与Polyline

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

文档

使用render方法的图文详解

使用render方法的图文详解:这次给大家带来使用render方法的图文详解,使用render方法的注意事项有哪些,下面就是实战案例,一起来看一下。先说一下对官网上demo的个人理解:<!DOCTYPE html> <html> <head> <title>Vue的render方法说
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top