首页 > 其他分享 >vue(九)vue3新特性

vue(九)vue3新特性

时间:2023-07-10 19:48:34浏览次数:40  
标签:vue const setup vue3 特性 msg 调用 props 组件

vue3六大亮点:

  • 性能比Vue2强

  • 可以将无用模块去掉,仅打包需要的

  • 组合API

  • 碎片(fragment),portal传送门(teleport),悬念(suspense)

  • 更好的TS支持

  • 暴露了自定义渲染API

setup()

  • 在setup函数中声明对象,代替data()。ref声明简单对象,reactive声明复杂对象。

<template>
  <h3>{{ s1 }}</h3>
  <h3>{{ person.id }}</h3>
</template>

<script>
import {ref,reactive} from "vue"

export default {
    name: "App",
    setup(){
      const s1=ref("s1111")
      const person=reactive({
        id:1,
        name:"perter"
      })
      return{
        s1,person
      }
    }
}
  • 在setup()中声明methods

export default {
    name: "App",
    setup(){
      function clickHandler() {
        console.log(111);
      }
      return{
        clickHandler
      }
    }
}
  • 在setup()中使用props和context

props代替vue2的props,具有同样的组件交互功能

setup()是在组件 beforeCreate() 和 created() 时就已调用,所以无法在setup()中调用this,使用context代替this来获取组件的属性和上下文

setup(props,ctx){
      
      }
  • 在setup()中使用生命周期函数

    • 渲染时:beforeMount、mounted(网络请求一般放在mounted中),调用改为 OnBeforeMount, OnMounted

    • 更新时:beforeUpdate、updated,调用改为 OnBeforeUpdate, OnUpdated

    • 卸载时:beforeUnmount(卸载之前,把消耗性能的处理都删掉)、unmounted,调用改为 OnBeforeUnmount, OnUnmounted

    以前一个生命周期函数只能存在一个,现在可以定义多个

setup(){
    OnMounted(
        ()=>{console.log("...")}
    )

}
  • Provide/Inject

provide()inject() 可以实现嵌套组件之间的数据传递(上级向下级传递),不限制层级(跳过中间子组件)

父组件使用provide()向下传递数据,子组件使用 inject()获取上层传递过来的数据

这两个函数只能在 setup() 中使用

// 父组件传递
setup(){
    provide("msg","this is msg1")
}

// 子组件获取
setup(){
    const msg=inject("msg")
    return{
        msg
    }
}
  • fragment

不再限于模板中的单个根节点

 

标签:vue,const,setup,vue3,特性,msg,调用,props,组件
From: https://www.cnblogs.com/yjh1995/p/17542100.html

相关文章

  • vue(十)Element-plus
    Element-plus基于Vue3,Element-ui基于Vue2,是一套前端页面组件库安装和使用安装npminstallelement-plus--save使用:按需导入,只打包使用到的组件安装插件unplugin-vue-components和unplugin-auto-importnpminstall-Dunplugin-vue-componentsunplugin-aut......
  • vue(十一)服务启动
    本地debug在项目路径下输入命令npmrunserve打包部署1、打包:在项目路径下输入打包命令,会打包成一个dist文件夹npmrunbuild2、安装服务器:npminstall-gserve3、启动服务serve-sdist-s参数的意思是将其架设在Single-PageApplication模式下......
  • vue(八)状态管理vuex
    安装和使用Vuex是一个专门为vue.js应用程序开发的状态管理模式+库,采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。简单说,状态管理可以理解成为了更方便的管理组件之间的数据交互,提供了一个集中式的管理方案,任何组件都可以按照指定......
  • Vue3 的 hook函数
    Vue3的hook函数相当于vue2的mixin,不同在于hooks是函数;Vue3的hook函数可以帮助我们提高代码的复用性,让我们能在不同的组件中都利用hooks函数;其实就是代码的复用,可以用到外部的数据,生命钩子函数...,具体怎么用直接看代码,//一般都是建一个hooks文件夹,都写在里面impor......
  • vue3封装echarts组件数据更新不同步问题
    vue3封装echarts组件数据更新不同步问题背景:​ 记录一下项目中遇到的bug,在vue3+echarts环境下,为了方便使用,我将echarts封装成组件使用,使用的时候只需要把对应的值传入给chart组件就行,但是在传入真实数据的时候遇到了问题,就是传入value值与图表组件显示的数值不一致。(如图)......
  • Vue + Element ui 实现动态表单,包括新增行/删除行/动态表单验证/提交功能
    总结/朱季谦最近通过Vue+Elementui实现了动态表单功能,该功能还包括了动态表单新增行、删除行、动态表单验证、动态表单提交功能,趁热打铁,将开发心得记录下来,方便以后再遇到类似功能时,直接拿来应用。简化的页面效果图如下:最开始,我是用了纯粹的表格形式,后来发现,这种形式在提交......
  • vue-组件
    <!DOCTYPEhtml><html><head><title>VueDemo</title><scriptsrc="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script></head><body><divid="firstVue">......
  • Vue监听store中数据变化的2种方式
    http://chart.zhenglinglu.cn/pages/068e2f/#方式一......
  • Vue路由新开页面跳转和传参传递
    需求:在后台管理系统首页列表项中,点击详情跳转到系统中指定菜单的路由要求新开窗口并需要带上参数查询。第一种方法:1const{id}=item;2letrouteUrl=this.$router.resolve({3path:'/xxx',//路由地址4query:{id}//参数信息5});6window.open(ro......
  • VUE中定义全局配置方法
    方法一:main.ts中constwsapi="ws://localhost:8081";constappConfig={wsapi,};constapp=createApp(App);//ProvidetheappConfigasaglobalpropertyapp.config.globalProperties.$appConfig=appConfig;app.use(store)VUE中1、setup方法中co......