常规组件使用

定义组件

components/list/list.vue

<template>
<ul>
<li v-for="(item, index) in list" :key="`item_${index}`">
{{ item.name }}
</li>
</ul>
</template>
<script>
export default {
name: 'List',
props: {
list: {
type: Array,
default: () => []
}
}
}
</script>

components/list/index.js

import list from './list'
export default list

组件使用

views/render-page.vue


<template>
<div>
<list :list=list></list>
</div>
</template>
<script>
import List from '_c/list'
export default {
data () {
return {
list: [
{ name: 'name1' },
{ name: 'name2' }
]
}
},
components: {
List
}
}
</script>

效果图:

定义函数式组件

components/render-dom.vue

export default {
function: true,
props: {
name: String,
renderFunc: Function
},
render: (h, ctx) => {
return ctx.props.renderFunc(h, ctx.props.name)
}
}

使用函数式组件

components/list/list.vue

<template>
<ul>
<li v-for="(item, index) in list" :key="`item_${index}`">
<span v-if="!render">{{ item.name }}</span>
<render-dom v-else :render-func="render" :name="item.name"></render-dom>
</li>
</ul>
</template>
<script>
import RenderDom from '_c/render-dom'
export default {
name: 'List',
components: {
RenderDom
},
props: {
list: {
type: Array,
default: () => []
},
render: {
type: Function,
default: () => {}
}
}
}
</script>

views/render-page.vue

<template>
<div>
<list :list=list :render="renderFunc"></list>
</div>
</template>
<script>
import List from '_c/list'
export default {
data () {
return {
list: [
{ name: 'name1' },
{ name: 'name2' }
]
}
},
components: {
List
},
methods: {
renderFunc (h, name) {
return h('i', {
style: {
color: 'green'
}
}, name)
}
}
}
</script>

效果图:



其余文件如函数式组件

views/render-page.vue

<template>
<div>
<list :list=list :render="renderFunc"></list>
</div>
</template>
<script>
import List from '_c/list'
export default {
data () {
return {
list: [
{ name: 'name1' },
{ name: 'name2' }
]
}
},
components: {
List
},
methods: {
renderFunc (h, name) {
return (
<i on-click={this.handleClick} style={{ color: 'blue' }}>{name}</i>
)
},
handleClick (e) {
console.log(e)
}
}
}
</script>

效果图:

Vue render函数 函数时组件 jsx的更多相关文章

  1. vue render 渲染函数

    vue render 渲染函数 经常看到使用render渲染函数的示例,而且在一些特殊情况下,确实更好使用,可以更加有效地细分组件,因而借助vue-element-admin来学习一波 render函 ...

  2. Vue.js 2.x render 渲染函数 & JSX

    Vue.js 2.x render 渲染函数 & JSX Vue绝大多数情况下使用template创建 HTML.但是比如一些重复性比较高的场景,需要运用 JavaScript 的完全编程能力 ...

  3. Vue之render渲染函数和JSX的应用

    一.模板缺陷 模板的最大特点是扩展难度大,不易扩展.可能会造成逻辑冗余 <Level :type="1">哈哈</Level> <Level :typ ...

  4. vue render函数

    基础 vue推荐在绝大多数情况下使用template来创建你的html.然而在一些场景中,你真的需要javascript的完全编程能力.这就是render函数.它比template更接近编译器 < ...

  5. Render渲染函数和JSX

    1.Render函数:render是用来替换temlate的,需要更灵活的模板的写法的时候,用render. 官网API地址:https://cn.vuejs.org/v2/guide/render- ...

  6. 理解Vue中的Render渲染函数

    理解Vue中的Render渲染函数 VUE一般使用template来创建HTML,然后在有的时候,我们需要使用javascript来创建html,这时候我们需要使用render函数.比如如下我想要实现 ...

  7. vue render函数解析

    一.render 函数的作用: 写一些vue.js的template太繁琐,利用render,可以使用js来生成模板,更加灵活和简便. 二.使用render前提: 官网也说了.在深入渲染函数之前推荐阅 ...

  8. vue第十单元(动态组件 keep-alive(钩子函数) 递归组件(name) 组件命名约定)

    第十单元(动态组件 keep-alive(钩子函数) 递归组件(name) 组件命名约定) #课程目标 熟练掌握动态组件的实现 掌握keep-alive缓存组件,以及相应的钩子函数 熟练掌握递归组件, ...

  9. 基于VueJS的render渲染函数结合自定义组件打造一款非常强大的IView 的Table

    基于VueJS的render渲染函数结合自定义组件打造一款非常强大的IView 的Table https://segmentfault.com/a/1190000015970367

随机推荐

  1. 12c RAC 用Rman 恢复到异机单实例

    准备工作 原服务器软件部署:Redhat 6.6 + Oracle 12.2.0.1 rac Oracle12c单实例安装 1.创建恢复服务器,设置大于原库数据大小的磁盘容量.设置相同的服务器主机名参 ...

  2. neutron-server Connection pool is full, discarding connection 连接池过满

    参考链接:https://zhiliao.h3c.com/Theme/details/48291 问题: -- ::33.235 WARNING requests.packages.urllib3.c ...

  3. SPSSAU数据分析思维培养系列1:数据思维篇

    今天,SPSSAU给大家带来[数据分析思维培养]系列课程.主要针对第一次接触数据分析,完全不懂分析的小白用户,或者懂一些简单方法但苦于没有分析思路,不知道如何规范化分析. 本文章为SPSSAU数据分析 ...

  4. Java多线程_ThreadLocal

    用法:ThreadLocal用于保存某个线程共享变量:对于同一个static ThreadLocal,不同线程只能从中get,set,remove自己的变量,而不会影响其他线程的变量. ThreadL ...

  5. Vue企业级优雅实战-00-开篇

    从2018.1.开始参与了多个企业的中台建设,这些中台的技术选型几乎都是基于 Spring Cloud 微服务架构 + 基于 Vue 全家桶的前端.我前后端架构及开发我几乎各占一半的精力,在企业级前端 ...

  6. 解决SpringBoot jar包中的文件读取问题

    前言 SpringBoot微服务已成为业界主流,从开发到部署都非常省时省力,但是最近小明开发时遇到一个问题:在代码中读取资源文件(比如word文档.导出模版等),本地开发时可以正常读取 ,但是,当我们 ...

  7. 字段在class文件中的存在形式——FieldInfo

    每个字段(Field)都有field_info结构所定义,一个class文件中,不会有两个字段同时具有相同的名字和描述符 name_index:值为一个整数(常量池表中的有效索引),例如name_in ...

  8. java23种设计模式——七、桥接模式

    原文地址:https://www.cnblogs.com/chenssy/p/3317866.html 源码在我的github和gitee中获取 目录 java23种设计模式-- 一.设计模式介绍 j ...

  9. 从request中获取文件流的两种方式,配置文件上传大小

    原文地址:https://blog.csdn.net/xyr05288/article/details/80692132

  10. 终于弄明白了 Singleton,Transient,Scoped 的作用域是如何实现的

    一:背景 1. 讲故事 前几天有位朋友让我有时间分析一下 aspnetcore 中为什么向 ServiceCollection 中注入的 Class 可以做到 Singleton,Transient, ...