vue3中再<script setup>标签下使用渲染函数render方法

2023-10-23 15:33:40

有时候未了方便操作组件,我们需要时用渲染函数来编写组件,再vue3可以再setup函数中返回内容来编写组件,但有时候我们直接使用了<script setup>标签应该如何写呢

第一种方式就是普通的渲染函数来编写 (推荐)

<script setup lang="ts">import { ref,h } from 'vue'const props = defineProps<{    text: string
}>()const handleClick = () => {    console.log('click!!')
}const root=h('button',
             {type:'button',onClick:handleClick,class:'btn btn-primary'},props.text)</script><template>
  <root/>             </template>

其实把root函数写成render函数更直观


第二种方式是在tsx模式下,这个模式需要另外配置vue工程,不推荐使用

<script lang="tsx" setup>   import { h } from 'vue';   const render = () => {     return h('div', []);   };   const jsxNode = () => {     return <div> text </div>;   }; </script> <template>   <render />   <jsxNode /> </template>

在渲染函数模式下,我们就可以更改父组件传过来的slots内容了,以达到先修改后生效的效果。

下面以修改slots中的class为例


slots = ()
animationClass = =()=> {
  slotValue = slots.?.()
  (slotValue) {
    ([] && [].&& []..class){
      []..class =[]..class .(animationClass)[]..class =[]..class + +animationClass}
  }
  slotValue[]}


  • 2020-03-21 00:11:38

    Android卡片布局(圆角阴影)的几种实现及分析

    在开发中,为了界面美观,圆角view和阴影效果是开发中经常遇到的UI场景,比如银行卡效果,卡片式itemView布局,Banner图等,开发中我们通过各种方式实现了这种效果,但是哪种方案最好呢,接下来本文将比较几种常见的圆角阴影布局实现,并从内存占用角度分析它们的优缺点.

  • 2020-03-21 12:05:24

    android 自定义组件,使用AttributeSet

    首先要在res/values目录下建立一个attrs.xml(名字可以自己定义)的文件,并在此文件中增加对控件的属性的定义.其xml文件如下所示:

  • 2020-03-21 12:09:59

    Android使用AttributeSet自定义控件的方法

    我们可以在attrs.xml中声明自己控件的属性,在布局xml文档中声明自己的命名空间,这时就可以对设置自己想要的值了,然后在AttributeSet这个属性中获取对应的值。好了不多说,我们来看下代码,一切尽在不言中:

  • 2020-03-22 21:16:07

    用vue做的跟随鼠标移动的div

    最近接到一个任务,就是在既存用electron-vue开发的桌面端程序上追加随鼠标移动的动画效果,之前一直使用angular和react,没怎么接触过vue,先做一个vue的简单例子,然后再整合。

  • 2020-03-23 15:16:30

    import,require具体用法

    import 和 require 是JS模块化编程使用的,是前端开发者们在性能探索中的又一大进步。