vue-函数式组件

简介: 1. vue其实也有函数式组件哦,不是react才有函数组件的这篇文章之前,建议先看下渲染函数标题组件,有衔接关系2.函数组件概念也都一样组件没有管理任何状态,也没有监听任何传递给它的状态,也没有生命周期访问优点就是 轻量,灵活

1.前言


  1. vue其实也有函数式组件哦,不是react才有函数组件的
    这篇文章之前,建议先看下渲染函数标题组件,有衔接关系

2.函数组件概念也都一样

组件没有管理任何状态,也没有监听任何传递给它的状态,也没有生命周期访问

优点就是 轻量,灵活

简单翻译 既没有 data, 也没有 this


2.函数式组件写法


2.1 标志是functional


functional:true, //函数组件


2.2  没有this的影响
  1. 没有template了,写上也不生效
  2. 所有属性通过 render的第二个参数 conetxt传递
    简单的说就是把用到this获取属性的地方 ,属性都从 contextprops解构出来
    在这篇文章渲染函数标题组件,基础上进行修改


3.贴图比较


3I1_Q_%[Z6403U_`SVK2J7M.png



4. 上代码


效果和之前的是一样的


Vue.component("heading", {
            functional:true, //函数组件
            props: {
                level: {
                    type: String,
                    default: "1"
                },
                title: {
                    type: String,
                    default: ""
                },
                icon: {
                    type: String
                }
            },
            render(h,context) {
                // 子节点数组
                console.log("上下文:",context);
                let children = []
                // 属性获取的变化
                const {icon,title,level} = context.props
                // icon处理
                if (icon) {
                    children.push(h(
                        "svg",
                        { class: "icon" },
                        [h("use", {
                            attrs: { 'xlink:href': '#icon-' +icon }
                        })]
                    ))
                }
                children = children.concat(context.children)
                const vnode = h(
                    "h" + level,
                    { attrs: { title } },
                    children
                )
                console.log("查看", vnode);
                return vnode
            }
        })



相关文章
|
5天前
|
JavaScript
vue消息订阅与发布
vue消息订阅与发布
|
2天前
|
JavaScript
理解 Vue 的 setup 应用程序钩子
【10月更文挑战第3天】`setup` 函数是 Vue 3 中的新组件选项,在组件创建前调用,作为初始化逻辑的入口。它接收 `props` 和 `context` 两个参数,内部定义的变量和函数需通过 `return` 暴露给模板。`props` 包含父组件传入的属性,`context` 包含组件上下文信息。`setup` 可替代 `beforeCreate` 和 `created` 钩子,并提供类似 `data`、`computed` 和 `methods` 的功能,支持逻辑复用和 TypeScript 类型定义。
20 11
|
4天前
|
JavaScript
vue尚品汇商城项目-day07【vue插件-50.(了解)表单校验插件】
vue尚品汇商城项目-day07【vue插件-50.(了解)表单校验插件】
14 4
|
4天前
|
JavaScript
vue尚品汇商城项目-day07【51.路由懒加载】
vue尚品汇商城项目-day07【51.路由懒加载】
15 4
|
4天前
|
JavaScript
vue尚品汇商城项目-day07【vue插件-54.(了解)生成二维码插件】
vue尚品汇商城项目-day07【vue插件-54.(了解)生成二维码插件】
14 2
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
1039 0
|
7天前
|
JavaScript
vue组件中的插槽
本文介绍了Vue中组件的插槽使用,包括单个插槽和多个具名插槽的定义及在父组件中的使用方法,展示了如何通过插槽将父组件的内容插入到子组件的指定位置。
|
6天前
|
JavaScript 前端开发 IDE
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
|
6天前
|
JavaScript 前端开发 API
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
|
6天前
|
JavaScript 前端开发
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
下一篇
无影云桌面