关于vue3中setup函数的使用

 更新时间:2022年04月23日 09:18:02   作者:黑猫几绛  
这篇文章主要介绍了关于vue3中setup函数的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

概述 

一、 初识setup函数 

组件中所用到的:数据、方法等等均要配置在setup中,这也就意味着在Vue2中写的data、methods在这里都不再推荐使用。

这样的配置让对象式编程趋近于了函数式编程。

<script>
export default {
  name: 'App',
  // 最为原始的对象写法是这样,但是通过es6我们可以简写
  // setup: function(){}
  setup () {
    // 数据
    let name = '黑猫几绛'
    let age = 20
    // 方法
    function sayHello() {
      console.log(`我叫${name},我今年${age}了`)
    }
  }
}
</script>

了解过Vue2响应式原理的话你可能会有疑问说,在这个地方name和age并不是响应式的。

的确如此,在这里我们仅仅是测试一下setup中是否可以放入数据与方法,响应式在后面的专栏文章中介绍。

如果此时未了解响应原理,可以看看我以前的一篇文章,这篇文章里有详细介绍

二、 关于setup的返回值

仅仅存放数据与方法还不够,我们需要将他们作为返回值返回出去,在模板中便可以直接使用。

<template>
  <h1>我叫{{name}},我今年{{age}}了</h1>
</template>
 
<script>
export default {
  name: 'App',
  // 最为原始的对象写法是这样,但是通过es6我们可以简写
  // setup: function(){}
  setup () {
    // 数据
    let name = '黑猫几绛'
    let age = 20
    // 方法
    function sayHello() {
      console.log(`我叫${name},我今年${age}了`)
    }
    return{
      name,
      age,
      sayHello
    }
  }
}
</script>

在概述里面还介绍了setup的另外一种返回值,即返回一个渲染函数,这个函数的方法有一点像React.creatElement,可以自定义渲染的内容。

<script>
import {h} from 'vue'
export default {
  name: 'App',
  setup () {
    // 在页面上渲染出一个h1标签
    return ()=> h('h1', '黑猫几绛')
  }
}
</script>

三、 关于setup的参数

# App.vue
<template>
  <Demo msg="hello" name="world" @hello="changeId">
    <template v-slot:test>
      摸鱼
    </template>
  </Demo>
</template>
# Demo.vue
<script>
export default {
    name:'Demo',
    props:['msg'],
    setup(props,context){
        console.log(props);
        console.log(context.attrs);
        console.log(context.slots);
        console.log(context.emit);
    }
}
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue组件传值(高级)、属性传值、反向传值、跨级传值实例详解

    vue组件传值(高级)、属性传值、反向传值、跨级传值实例详解

    父组件通过属性传值给子组件,父组件修改数据后会刷新页面并重新传值给子组件,子组件可以修改父组件传的值并刷新自己的页面 但是并不会修改父组件中的值,这篇文章主要介绍了vue组件传值(高级)、属性传值、反向传值、跨级传值,需要的朋友可以参考下
    2022-09-09
  • vue innerHTML 绑定单击事件不生效的解决

    vue innerHTML 绑定单击事件不生效的解决

    这篇文章主要介绍了vue innerHTML 绑定单击事件不生效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • mpvue 项目初始化及实现授权登录的实现方法

    mpvue 项目初始化及实现授权登录的实现方法

    这篇文章主要介绍了mpvue 项目初始化及实现授权登录的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 通过原生vue添加滚动加载更多功能

    通过原生vue添加滚动加载更多功能

    这篇文章主要介绍了通过原生vue添加滚动加载更多功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Xx-vue自定义指令实现点击水波纹涟漪效果

    Xx-vue自定义指令实现点击水波纹涟漪效果

    这篇文章主要为大家介绍了Xx-vue自定义指令实现点击水波纹涟漪效果,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Element Table行的动态合并及数据编辑示例

    Element Table行的动态合并及数据编辑示例

    这篇文章主要为大家介绍了Element Table行的动态合并及数据编辑示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • vue中利用simplemde实现markdown编辑器(增加图片上传功能)

    vue中利用simplemde实现markdown编辑器(增加图片上传功能)

    这篇文章主要介绍了vue中利用simplemde实现markdown编辑器(增加图片上传功能),本文通过实例代码相结合的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • vue flex 布局实现div均分自动换行的示例代码

    vue flex 布局实现div均分自动换行的示例代码

    这篇文章主要介绍了vue flex 布局实现div均分自动换行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • vue如何设置动态的栅格占位、水平偏移量、类名、样式

    vue如何设置动态的栅格占位、水平偏移量、类名、样式

    这篇文章主要介绍了vue如何设置动态的栅格占位、水平偏移量、类名、样式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue中配置使用process.env详解

    Vue中配置使用process.env详解

    process.env 是 Node.js 中的一个环境对象,其中保存着系统的环境的变量信息,可使用 Node.js 命令行工具直接进行查看,这篇文章主要介绍了Vue中配置process.env详解,需要的朋友可以参考下
    2023-03-03

最新评论