Vue3.x项目开发的一些常用知识点总结

目录
  • 一、定义组件属性
  • 二、formatter简写
  • 三、子父组件通信
  • 四、监听组件属性变化
  • 五、自定义指令
  • 总结

PS:以下知识点都是基于 vue3.x + typescript + element-plus + setup语法糖 使用的。

一、定义组件属性

const props = defineProps({
  visible: {
    type: Boolean,
    default: false
  }
})

console.log(props.visible)

[warning] 注意:defineProps 不用从vue引入,setup 语法糖环境会自动识别

二、formatter简写

在 el-table-column 中使用 formatter 简写

<el-table-column label="时间" prop="createTime" :formatter="(...args: any[]) => formatTime(args[2])" />

三、子父组件通信

子组件:

<script setup lang="ts">
const props = defineProps({
  visible: {
    type: Boolean,
    default: false
  }
})

const emit = defineEmits(['closeILdialog']) // 注册触发器,defineEmits不用从vue引入,setup语法糖环境会自动识别
function onDialogClose() {
  emit('closeILdialog') // 触发
}
</script>

<template>
<el-dialog
    v-model="visible"
    width="900px"
    @close="onDialogClose"
    title="日志"
    :close-on-click-modal="false"
  >
  </el-dialog>
</template>

父组件:

<script setup lang="ts">
let ILdialog = reactive({
  visible: false
})
function closeILdialog() {
  ILdialog.visible = false
}
</script>

<template>
<instruct-log :visible="ILdialog.visible" @closeILdialog="closeILdialog"></instruct-log>
</template>

四、监听组件属性变化

const props = defineProps({
  visible: {
    type: Boolean,
    default: false
  }
})

// 监听visible
watch(() => props.visible, (newV) => {
  if(newV) {
    // ...
  }
})

五、自定义指令

局部指令:

<script setup lang="ts">
const vFoo = {
  mounted(el: any, binding: any) {
    console.log(binding.value) // 123
  }
}
</script>

<template>
<div v-foo="123" v-auth="true"></div>
</template>

[warning] 注意:局部指令定义需要 v 开头,如:vFoo,这样才能识别到 v-foo 指令

全局指令:

const app = createApp(App)

// 权限指令
app.directive('auth', {
  mounted(el: any, binding: any) {
    if(!binding.value) {
      el.parentNode.removeChild(el)
    }
  }
})

总结

到此这篇关于Vue3.x项目开发的一些常用知识点的文章就介绍到这了,更多相关Vue3.x开发知识点内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • vue3.0自定义指令(drectives)知识点总结

    在大多数情况下,你都可以操作数据来修改视图,或者反之.但是还是避免不了偶尔要操作原生 DOM,这时候,你就能用到自定义指令. 举个例子,你想让页面的文本框自动聚焦,在没有学习自定义指令的时候,我们可能会这么做. const app = Vue.createApp({ mounted(){ this.$refs.input.focus(); }, template: `<input type="text" ref="input" />`, }); 在mou

  • Vue3.x项目开发的一些常用知识点总结

    目录 一.定义组件属性 二.formatter简写 三.子父组件通信 四.监听组件属性变化 五.自定义指令 总结 PS:以下知识点都是基于 vue3.x + typescript + element-plus + setup语法糖 使用的. 一.定义组件属性 const props = defineProps({ visible: { type: Boolean, default: false } }) console.log(props.visible) [warning] 注意:define

  • PHP项目开发中最常用的自定义函数整理

    <?php //alert提示 function alert($msg){ echo "<script>alert('$msg');</script>"; } //把一些预定义的字符转换为 HTML 实体 function d_htmlspecialchars($string) { if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = d_htmlspec

  • CodeIgniter常用知识点小结

    本文简单总结了CodeIgniter开发中的常用知识点.分享给大家供大家参考,具体如下: 跳转: $this->load->helper('url'); redirect(); 常量定义: config/constants.php 关于语言文件: 只说我自己的做法 为了统一管理错误信息 决定做一个error_lang.php 在application/language下新建文件夹chinese 新建文件 error_lang.php 在config.php里: $config['languag

  • vue3组件化开发常用API知识点总结

    目录 组件化思想 组件通讯 $props $emits $parent $attrs proviede & inject 插槽 slot 渲染作用域 作用域插槽 v-model 表单组件 自定义组件 改变默认参数 样式绑定相关 class style 总结 组件化思想 为什么使用组件化开发? 当前前端比较流行的 Vue React 等框架,都会通过编写组件来完成业务需求,也就是组件化开发.包括小程序开发也会用到组件化开发的思想. 分析组件化思想开发应用程序: 将一个完整页面拆分成很多个小组件 每

  • Django项目开发中cookies和session的常用操作分析

    本文实例讲述了Django项目开发中cookies和session的常用操作.分享给大家供大家参考,具体如下: COOKIES操作 检查cookies是否存在: request.COOKIES.has_key('<cookie_name>') 获取cookies: request.COOKIES.get('visits', '1') if 'last_visit' in request.COOKIES: request.COOKIES['last_visit'] 设置cookies: resp

  • SpringBoot项目开发常用技术整合

    目录 1 创建一个springboot demo 1.1 创建Restful接口 2 接口返回通用JSON对象 2.1 构建通用返回对象JSONResult 2.2 使用Jackson 3 SpringBoot开发环境热部署 4 资源文件属性配置 4.1 资源文件中的属性配置与映射到实体类 4.2 Server和Tomcat配置(详细配置参考Gitee) 5 SpringBoot整合模板引擎 5.1 集成freemarker 5.2 集成thymeleaf 5.2.1 集成i18n属性配置 6

  • Vue3结合TypeScript项目开发实战记录

    目录 概述 1.compositon Api 1.ref 和 reactive的区别? 2.周期函数 3.store使用 4.router的使用 2.关注点分离 3.TypeScript支持 总结 概述 Vue3出来已经有一段时间了,在团队中,也进行了大量的业务实践,也有了一些自己的思考. 总的来说,Vue3无论是在底层的原理上,还是在业务的实际开发中,都有了长足的进步. 使用 proxy 代替之前的 Object.defineProperty 的API,性能更加优异,也解决了之前vue在处理对

  • Vue3结合TypeScript项目开发实践总结

    目录 概述 1.compositon Api 1.ref 和 reactive的区别? 2.周期函数 3.store使用 4.router的使用 2.关注点分离 3.TypeScript支持 概述 Vue3出来已经有一段时间了,在团队中,也进行了大量的业务实践,也有了一些自己的思考. 总的来说,Vue3无论是在底层的原理上,还是在业务的实际开发中,都有了长足的进步. 使用 proxy 代替之前的 Object.defineProperty 的API,性能更加优异,也解决了之前vue在处理对象.数

  • Android项目开发常用工具类LightTaskUtils源码介绍

    目录 LightTaskUtils概述 LightTaskUtils截图 LightTaskUtils源码 版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl LightTaskUtils概述 LightTaskUtils是一个轻量级的线程管理工具. LightTaskUtils截图 LightTaskUtils截图如下: LightTaskUtils源码 LightTaskUtils源码如下: import android.os.Handl

  • 配置一个vue3.0项目的完整步骤

    说起来有点丢人,我已经使用vue好久了,但是怎么从0开始配置一个vue项目,每次还是要百度.这次决定写个博客,加强下记忆,如果再记不住就直播自己的女朋友洗澡. 以下以新建一个图书管理项目为例.我使用vue3新建项目,对于创建一个项目来说,vue3真的比vue2简单很多. 1.初始化项目 1.1全局安装vue-cli 创建vue项目,首先要确保全局安装了vue命令行工具. 我这边使用yarn而不用npm,因为yarn要比npm好用的多,强烈推荐使用.如果大家对yarn不熟悉,我这边免费赠送我的ya

随机推荐