Vue函数式组件个人理解
来源:互联网 发布:spark sql教程 编辑:程序博客网 时间:2024/05/01 22:46
Vue官方文档的demo总是会省略很多东西,对于我们这样的小萌新十分不友好啊喂。函数式组件这块儿(链接https://cn.vuejs.org/v2/guide/render-function.html#函数式组件)这个demo啊,并没有实现什么实际的东西,还是需要自己去编写。我把它编辑好了,大家可以参考一下。
首先,html这块儿:
<div id="app"> <smart-list :items=items></smart-list></div>
vue实例名为app,组件名为smart-list,这个组件可以根据我绑定的items来更改对应的不同内容,具体的见下面的js部分:
//当父组件传过来的是空items时 var EmptyList = {template: '<p>Empty list</p>'}; //当父组件传来的items元素为对象类型时 var TableList = 'ul' // 当父组件定义了isOrdered变量且为true var UnorderedList = 'ul' //定义组件 Vue.component('smart-list', { //标记为函数式组件 functional: true, //render函数 render: function (createElement, context) { // console.log(context)//若不理解可以打印出来context来看看里面都有些什么东西 //规定组件的渲染规则 function appropriateListComp() { //获取父组件传来的数据 var items = context.props.items; //若空,则返回前面定义的emptylist if (items.length === 0) return EmptyList; //若为对象 if (typeof items[0] === 'object') return TableList; //其他 return UnorderedList } //生成模板 return createElement( //模板标记为渲染规则函数返回值 appropriateListComp(), //模板子元素,返回一个数组 Array.apply(null, {length: context.props.items.length}).map(function (value, index) { return createElement('li',context.props.items[index].name) }) ) }, props: { items: { type: Array, required: true }, isOrdered: Boolean } }); new Vue({ el: '#app', data:{ items:[ { name:'a', id:0 }, { name:'b', id:1 }, { name:'c', id:2 } ] } })
这里我们例子中的items数组中的元素为对象类型。
这里总共创建了3个模板子元素<li>
最终浏览器中的渲染结果:
<div id="app"> <ul> <li>a</li> <li>b</li> <li>c</li> </ul></div>
阅读全文
0 0
- Vue函数式组件个人理解
- Vue组件理解
- 深入理解Vue.js组件!
- 深刻理解Vue中的组件
- vue组件的初步理解
- probe函数个人理解
- 前端框架组件设计的个人理解
- Vue 组件 data为什么是函数?
- Vue之过渡组件的钩子函数
- 个人对构造函数理解
- 似然函数个人理解
- Vue MVVM双向数据绑定(个人理解)
- vue、vueRoute钩子函数的理解
- 对vue生命周期-钩子函数的理解
- vue生命周期和钩子函数的理解
- vue 组件
- Vue组件
- vue 组件
- OKhttp 小编程
- java.net.UnknownHostException: XXX: XXX: Name or service not known
- Java绑定
- [Python] 小抄
- 深入理解Angularjs中的$resource服务
- Vue函数式组件个人理解
- 一分钟实现分布式锁
- 使用JSR-303进行校验 @Valid
- Oracle Data Guard概念
- 向使用anaconda安装的jupyter添加用virtualenv创建的虚拟环境
- 这才是真正的分布式锁
- MyBatis 一些不常见的数据类型
- 关于手势问题的一些问题,图片旋转或者放大缩小,,需要指定锚点进行旋转或者缩放
- 页缓存预读