vue3.0-props、computed、自定义事件方式

 更新时间:2023年04月22日 16:22:24   作者:qq_52822043  
这篇文章主要介绍了vue3.0-props、computed、自定义事件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

1. props验证

1)props验证

在封装组件时对外界传递过来的props数据进行合法性的校验,从而防止数据不合法的问题。

使用数组类型的props节点的缺点:无法为每个prop指定具体的数据类型。

2)对象类型的props节点

使用对象类型的props节点,可以对每个prop进行数据类型的校验。

<template>
  <h1>App</h1>
 
  <my-count :count="count" :state="state"></my-count>
</template>
 
<script>
import MyCount from './Count.vue'
 
export default {
    name: 'MyApp',
    data() {
        return {
            count: 1,
            state: true
        }
    },
    components: {
        MyCount
    }
}
</script>

3)props验证

对象类型的props节点提供了多种数据验证方案,例如:

  • 基础的类型检查
  • 多个可能的类型
  • 必填项校验
  • 属性默认值
  • 自定义验证函数

①基础的类型检查

可以直接为数组的prop属性制定基础的校验类型,从而防止组建的使用者为其绑定错误类型。

②多个可能的类型

如果某个prop属性值的类型不一致,此时可以通过数组的形式,为其指定多个可能的类型,示例代码如下:

③必填项校验

如果组建的某个prop属性是必填项,必须让组建的使用者为其传递属性的值,此时,可以通过如下的方式将其设置为必填项:

④属性默认值

在封装组件时,可以为某个prop属性指定默认值。

⑤自定义验证函数

在封装组件时,可以为prop属性指定自定义的验证函数,从而对prop属性的值进行更加精确的控制。

2. 计算属性

1)计算属性

计算属性本质上就是一个function函数,它可以实时监听data中数据的变化,并return一个计算后的新值,供组件渲染DOM时使用。

2)声明计算属性

计算属性需要以function函数的形式声明到组件的computed选项中。

计算属性侧重于得到一个计算的结果,因此计算属性中必须有return返回值。

3)计算属性的使用注意点

  • 计算属性必须定义在computed节点中
  • 计算属性必须是一个function函数
  • 计算属性必须有返回值
  • 计算属性必须当做普通属性使用

4)计算属性和方法

相对于方法来说,计算属性会缓存计算的结果,只有计算属性的依赖项发生变化时,才会重新进行运算,因此相对来说计算属性的性能更好。

  <p>数量:{{ count }}乘以2的值为:{{ plus() }}</p>
  <p>数量:{{ count }}乘以2的值为:{{ plus() }}</p>
 
  methods: {
        plus() {
            console.log('方法被执行了');
            return this.count*2;
        }
    }

   <p>数量:{{ count }}乘以2的值为:{{ plus }}</p>  
   <p>数量:{{ count }}乘以2的值为:{{ plus }}</p> 
 
  computed: {
        plus() {
            // 计算属性会缓存计算的结果
            console.log('计算属性被执行了');
            return this.count*2;
        }
    }

 

3. 自定义事件

1)自定义事件

在封装组件时,为了让组件的使用者可以监听到组件内状态的变化,此时需要用到组件的自定义事件。

2)自定义事件的3个使用步骤

在封装组件时:

  • 声明自定义事件
  • 触发自定义事件

在使用组件时:

1.监听自定义事件

①声明自定义事件

开发者为自定义组件封装的自定义事件,必须是现在emits节点中声明。

②触发自定义事件

在emits节点下声明的自定义事件,可以通过this.$emit('自定义事件的名称')方法进行触发。

③监听自定义事件

在使用自定义的组件时,可以通过v-on的形式监听自定义事件。

3)自定义事件传参

在调用this.$emit()方法触发自定义事件时,可以通过第2个参数为自定义事件传参。

4. 组件上的v-model

1)在组件上使用v-model

v-model是双向数据绑定指令,当需要维护组件内外数据的同步时,可以在组件上使用v-model指令。

  • 外界数据的变化会自动同步到counter组件中
  • counter组件中数据的变化,也会自动同步到外界

2)在组件上使用v-model的步骤

   

总结

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

相关文章

  • 基于ant design日期控件使用_仅月份的操作

    基于ant design日期控件使用_仅月份的操作

    这篇文章主要介绍了基于ant design日期控件使用_仅月份的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • vue如何防范XSS攻击的一些方法

    vue如何防范XSS攻击的一些方法

    xss的攻击方式是发生在用户使用浏览器时候运行,通过嵌入脚本窃取用户信息,本文主要介绍了vue如何防范XSS攻击的一些方法,感兴趣的可以了解一下
    2024-04-04
  • 使用Vue实现Markdown文档的展示和解析

    使用Vue实现Markdown文档的展示和解析

    在Vue项目中,Markdown文档的使用越来越普遍,因此在Vue中如何进行Markdown文档展示与解析也成为了一个热门话题,本文将介绍如何使用Vue实现Markdown文档的展示和解析,文中通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-01-01
  • Vue3中无法为el-tree-select设置反选问题解析

    Vue3中无法为el-tree-select设置反选问题解析

    这篇文章主要介绍了Vue3中无法为el-tree-select设置反选问题分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Vite图片资源打包优化的实现

    Vite图片资源打包优化的实现

    本文主要介绍了Vite图片资源打包优化的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • VUE里如何修改element-ui的显示层次与上下间隔

    VUE里如何修改element-ui的显示层次与上下间隔

    这篇文章主要介绍了VUE里如何修改element-ui的显示层次与上下间隔问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 超详细的vue组件间通信总结

    超详细的vue组件间通信总结

    作为一个vue初学者不得不了解的就是组件间的数据通信(暂且不谈vuex),通信方式根据组件之间的关系有不同之处,这篇文章主要给大家介绍了关于vue组件间通信的相关资料,需要的朋友可以参考下
    2021-07-07
  • vue内置指令详解

    vue内置指令详解

    指令是Vue模板中最常用的一项功能,它带有前缀v-,主要职责是当其表达式的值改变时,相应的将某些行为应用在 DOM 上。这篇文章主要介绍了vue内置指令详解,需要的朋友可以参考下
    2018-04-04
  • 解决在vue项目中webpack打包后字体不生效的问题

    解决在vue项目中webpack打包后字体不生效的问题

    今天小编就为大家分享一篇解决在vue项目中webpack打包后字体不生效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 在idea上Vue的安装和创建过程

    在idea上Vue的安装和创建过程

    本文详细介绍了如何在计算机上安装和配置Node.js,包括下载Node.js,验证安装成功,配置npm的全局模块目录和缓存目录,设置环境变量,配置npm镜像,安装Vue.js等步骤,通过这些指导,你可以在IDEA上成功创建和运行Vue项目
    2024-10-10

最新评论