vue2中render函数学习思维导图

news2024/11/26 0:43:25

 vue2之render+jsx从细节入手,彻底掌握

父组件 .vue 

<template>
  <div>
    <myCom :msg="msg" :data-list="dataList" @on-change="comChange" />
  </div>
</template>
<script>
import myCom from './renderTest/myCom.js'
export default {
  components: {
    myCom
  },
  data() {
    return {
      msg: '我是来自父组件的信息',
      dataList: [
        {
          name: 'Json Brown',
          age: '12',
          address: 'asasasss',
          date: '2023-12-12'
        },
        {
          name: 'Json Brown',
          age: '12',
          address: 'asasasss',
          date: '2023-12-12'
        }
      ]
    }
  },
  created() {
  
  },
  mounted() {
    console.log(12)
  },
  methods: {
    comChange(val) {
      console.log('as', val)
    }
  }
}
</script>

render.js 


import './style.scss' // 单独针对这个组件的样式
const ListItem = {
  name: 'ListItem',
  props: {
    personList: Array
  },
  data() {
    return {
      userInfo: {
        name: '诸葛亮',
        age: '1000'
      }
    }
  },
  render(h) {
    const { personList, userInfo } = this
    return (
      <div>

        <ul class='list-view'>
          {
            personList.map((mp, index) => {
              return (
                <li class='li'>
                  <p class='tag-sort-view'>{index + 1}</p>
                  <p>姓名:{mp.name}</p>
                  <p>年龄:{mp.age}</p>
                </li>
              )
            })
          }
        </ul>
        {
          this.$scopedSlots.header({ userInfo })
        }
      </div>
    )
  }
}
const SlotContent = {
  props: {
    userInfo: Object
  },
  render(h) {
    const { userInfo } = this
    console.log(userInfo)
    return (
      <div>
        <div>这是插槽的</div>
        { userInfo.name}
        { userInfo.age}
      </div>
    )
  }
}
export default {
  name: 'myCom',
  props: {
    msg: String,
    dataList: Array
  },
  data() {
    return {

    }
  },
  methods: {
    handleClick(event, info) {
      console.log(event, 12)
      console.log(info)
      this.$emit('on-change', info)
    }
  },
  render(h) {
    /**
     * 解构之后,可以不用 this.
     * const { msg, handleClick } = this
     */
    const sSlots = {
      header: (props) => <SlotContent userInfo={ props.userInfo }></SlotContent>
    }
    return (// 只能有一个根元素
      <div>
        <p onClick={ ($event) => this.handleClick($event, 'info') } class='bg' style={{ color: '#10ac84', margin: '20px', padding: '20px' }}>
         我是嘿嘿
        </p>
        <h2 onClick={ this.handleClick }>
          {this.msg}
        </h2>
        <ListItem personList={ this.dataList } scopedSlots={sSlots}></ListItem>

      </div>

    )
  }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1090407.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用eBPF加速阿里云服务网格ASM

背景 随着云原生应用架构的快速发展&#xff0c;微服务架构已经成为了构建现代应用的主要方式之一。而在微服务架构中&#xff0c;服务间的通信变得至关重要。为了实现弹性和可伸缩性&#xff0c;许多组织开始采用服务网格技术来管理服务之间的通信。 Istio作为目前最受欢迎的…

ardupilot开发 --- External LEDs篇

概述 夜航灯&#xff0c;LED状态灯&#xff0c;显示飞机当前状态&#xff1b; 支持的连接方式&#xff1a; I2C for external LED or RGB LEDs I^2C总线连接&#xff1b;SERVOx_FUNCTION for serially programmed device 串行连接&#xff1b;CANBUS for DroneCAN LEDs CAN总…

C# 往多线程传递安全参数的方法

在C#构造一个线程时&#xff0c;要向其传递一个函数&#xff0c;这个函数可以试简单的无参函数&#xff0c;也可以是参数为Object类型的函数&#xff0c;但是由于参数类型为Object&#xff0c;因此编译器无法实行类型检查&#xff0c;看下面的例子&#xff1a; class Program{…

JDBC-day04(数据库事务)

六&#xff1a;数据库事务 1.数据库事务介绍 事务&#xff1a;一组逻辑操作单元,使数据从一种状态变换到另一种状态。 事务处理&#xff08;事务操作&#xff09;&#xff1a;保证所有事务都作为一个工作单元来执行&#xff0c;即使出现了故障&#xff0c;都不能改变这种执行…

使用Swift开发Framework遇到的问题及解决方法

文章目录 一、Swift 旧版本Xcode 打出来的framework 新版本不兼容问题 一、Swift 旧版本Xcode 打出来的framework 新版本不兼容问题 Cannot load module xxx built with SDK ihphoneos16.4 when using SDK iphoneos17.0:XXX/xxx.framework/Modules/xxx.swiftmodule/arm64-appl…

公司要做大数据可视化看板,除了EXCEL以外有没有好用的软件可以用

当企业需要进行大数据可视化看板的设计和开发时&#xff0c;除了Excel&#xff0c;还有许多其他强大且适合大数据可视化的软件工具。以下是几种常用的好用软件&#xff0c;以及它们的特点和优势&#xff0c;供您参考。 一、Datainside 特点和优势&#xff1a; - **易于使用**…

一文讲清楚密评中的数据库存储加密 安当加密

密评对数据库存储加密的要求&#xff0c;主要包括对数据加密的要求和密码算法、密钥管理系统、密码应用子系统和密码安全防护机制等密码协议的要求。 首先&#xff0c;对于数据加密的要求&#xff0c;数据库加密技术应能够提供足够的数据安全性&#xff0c;保证数据在存储、传输…

Android Studio gradle手动下载配置

项目同步时&#xff0c;有时候会遇到Android Studio第一步下载gradle就是连接失败的问题。 这种情况&#xff0c;我们可以手动去gradle官网下载好gradle文件&#xff0c;放置在Android Studio的缓存目录下&#xff0c;这样AS在同步代码时就会自动解压下载好的文件。 步骤如下&…

安装Ubuntu玩玩

闲着没事儿&#xff0c;装个linux系统玩玩。听说乌班图系统比较火&#xff0c;那咱就玩玩这个。 1、下载一个比较小的系统 ubuntu系统下载_ubuntu linux最新版系统免费下载 - 系统之家 2、下载完后用虚拟机一键式安装。版本18.10 界面还是很简洁美观 3、安装ssh。 &#x…

Go语言函数和包介绍

函数 什么是函数&#xff1f; 函数是执行特定任务的代码块。函数接受输入&#xff0c;对输入执行一些计算&#xff0c;然后生成输出。 通常每一个程序都包含有很多的函数&#xff0c;系统通过函数来划分不同功能&#xff0c;将整体任务进行分解。 在 Go 语言中&#xff0c;…

Idea使用技巧——导包优化,新版idea界面取消,界面字体放大缩小

导包优化 on the fly 翻译为立刻 第一个表示&#xff0c;如果导入的包没有冲突&#xff0c;会自动帮你导入。如果输入List 无需手动altenter 第二个表示&#xff0c;没有引用的包&#xff0c;会自动删除。这个对于代码整洁尤其适用。相当于ctrlalto的功能 新版idea的界面取消 …

Uniapp 入门

创建项目 参考&#xff1a;uni-app创建新页面和页面的配置_uniapp多页面配置-CSDN博客 添加页面 添加路由 显示效果 网址&#xff1a;http://localhost:8080/#/pages/task/taskDetails 参考&#xff1a;uni-app官网 在 HBuilder X 使用命令行引入 uni-ui npm i dcloudio/un…

微软和OpenAI正在开发AI芯片, 并计划下个月发布

今年初&#xff0c;Chat**引起了无数网友关注&#xff0c;一度成为了热门话题。这是由人工智能研究实验室OpenAI开发的一款聊天机器人模型&#xff0c;也称为一种人工智能&#xff08;AI&#xff09;技术驱动的自然语言处理工具。能够通过学习和理解人类的语言来进行对话&#…

中国移动 OneNET 免费的物联网平台

中国移动 OneNET 物联网平台提供免费的设备连接通信服务。 01 中移 OneNET 物联网平台 中国移动 OneNET 定位为 PaaS 服务&#xff0c;即在物联网应用和真实设备之间搭建高效、稳定、安全的应用平台&#xff1a;面向设备&#xff0c;适配多种网络环境和常见传输协议&#xff0c…

Element UI库 之 el-input 赋值后不能删除,修改,输入

最近做了一个需求就是导入数据的&#xff0c; 导入了之后发现打折跟促销价都发不能修改了&#xff0c; 甚至删除都不行。后面去查了下发现大概是数据响应的问题。大概的解决办法有下面几个&#xff0c;我是用最后一个解决的 方法一&#xff1a;强制更新 在绑定input里面的调用…

buuctf week2-web-Upload again!

尝试传修改后缀的普通一句话木马&#xff0c;被检测 尝试传配置文件 .htaccess 和 .user.ini 两个都传成功了 接下来继续传入经过修改的木马 GIF89a <script language"php"> eval($_POST[cmd]); </script> 没有被检测&#xff0c;成功绕过 直接上蚁剑…

git cherry-pick 合并某次提交

一、无冲突的情况 1、合并其它分支某次提交 切换到主分支&#xff0c;想把其他分支的某次commit修改 合并到主分支上&#xff0c; 可以用 git cherry-pick 命令 比如&#xff0c;其它分支&#xff0c;某次提交的commit Hash 是30e48158badc39801f1ce3cb375a07b872d6f220 &a…

手机投屏之WFD简介

一、概述 1.1 简介 Miracast是由Wi-Fi联盟于2012年所制定&#xff0c;以Wi-Fi直连&#xff08;Wi-Fi Direct&#xff09;为基础的无线显示标准。支持此标准的消费性电子产品&#xff08;又称3C设备&#xff09;可透过无线方式分享视频画面&#xff0c;例如手机可透过Miracast将…

Semaphore使用以及原理

Semaphore使用以及原理 介绍原理使用场景使用方法Demo 介绍 Semaphore&#xff08;信号量&#xff09;是一种用于控制并发访问资源的机制。它可以用于多线程或多进程环境中&#xff0c;用于保护共享资源的访问&#xff0c;避免竞争条件和死锁。 原理 Semaphore维护一个计数器…

c#画五角星

c#画一个五角星,最重要的就是计算哪些坐标点出来,也是最难的一部分,这要涉及到一些数学方面的知识.对数学坐标知识不是很熟的人,如果想学画图,我建议多去看一下数学书,对我们写程序的人来说是没有什么坏处可言的. 想学习的朋友可以一起学习,我觉得分享学习是一种快乐,所以把自…