1.性能上提升1.3-2倍

2.按需加载 和 compsition api(组合api)

createApp

在 Vue 3 中,改变全局 Vue 行为的 API 现在被移动到了由新的 createApp 方法所创建的应用实例上。
vue3.0中使用createApp 来创建vue实例

import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App);
app.mount('#app');

main.js 下加载router、vuex

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
createApp(App).use(store).use(router).mount('#app')

setup函数

1、简介
setup函数是vue3中专门为组件提供的新属性。
2、执行时机
创建组件实例,然后初始化props,紧接着就调用setup函数,会在beforeCreate钩子之前被调用。
3、模板中使用
如果setup返回一个对象,则对象的属性将会被合并到组件模板的渲染上下文。

4、如何使用

<template><div>{{name}}</div>
</template>
<script>
import { reactive } from "vue"
export default {setup(props){const state = reactive({name:'abc'})return state}
}
</script>

注意:在setup()函数中无法访问到this

reactive函数

1、简介
reactive()函数接收一个普通对象,返回一个响应式的数据对象
2、基本语法

按需导入reactive函数

import { reactive} from "vue"

创建响应式数据对象

const state = reactive({ id:1 })

3、定义响应式数据供template使用

1)按需导入reactive函数
import { reactive} from "vue"
2)在setup()函数中调用reactive()函数,创建响应式数据对象
setup(){//创建响应式数据对象const state = reactive({name:'abc'})//setup函数中将响应式数据对象return出去供template使用return state
}
3)在template中访问响应式数据
<template><div>{{name}}</div>
</template>

ref的使用

1、简介
ref()函数用来根据给定的值创建一个响应式的数据对象,ref()函数调用的返回值是一个对象,这个对象
上只包含一个value属性
2、基本语法

1)按需导入ref函数
import { ref } from "vue"
2)在setup()函数中调用ref()函数,创建响应式数据对象
setup(){var c = ref(10);   //初始化值为10return {c}
}
3)在template中访问响应式数据
<template><div>{{c}}</div>
</template>

toRefs的使用

1、简介
toRefs()函数可以将reactive()创建出来的响应式对象,转换为普通对象,只不过这个对象上的每个属性
节点,都是ref()类型的响应式数据
2、基本语法

1)按需导入toRefs函数
import { reactive ,toRefs } from "vue";
2)...toRefs(state)创建响应式数据对象
setup(){let state = reactive({id:10});return { ...toRefs(state)};
}
3)在template中访问响应式数据
<template><div><p>{{id}}</p></div>
</template>

computed计算属性的使用

1、简介
computed()用来创建计算属性,computed()函数的返回值是一个 ref 的实例
2、基本语法

1)按需导入computed()
import { reactive ,toRefs ,computed} from "vue";
2)在setup()函数中调用computed()函数
setup(){let state = reactive({id:10,n1:computed(()=>state.id+1)  //计算属性的方式});
}
3)在template中访问响应式数据
<template><div><p>{{n1}}</p></div>
</template>

watch的使用

1、简介
watch() 函数用来监视某些数据项的变化,从而触发某些特定的操作
2、基本语法

1)按需导入watch()
import { reactive ,toRefs ,watch} from "vue";
2)在setup()函数中调用watch()函数
setup() {let state = reactive({id:10,});watch(() => console.log(state.id))},

生命周期钩子函数

1、基本语法

1)新版的生命周期函数,可以按需导入到组件中,且只能在 setup() 函数中使用
import { onMounted, onUpdated, onUnmounted} from "vue";
2)在setup()函数中调用computed()函数
setup(){onMounted(() => {console.log('mounted!')})onUpdated(() => {console.log('updated!')})onUnmounted(() => {console.log('unmounted!')})
}

2、新旧对比

beforeCreate -> use setup()
created -> use setup()
beforeMount -> onBeforeMount
mounted -> onMounted
beforeUpdate -> onBeforeUpdate
updated -> onUpdated
beforeDestroy -> onBeforeUnmount
destroyed -> onUnmounted
errorCaptured -> onErrorCaptured

provide和inject

1、简介
provide()和 inject()可以实现嵌套组件之间的数据传递。这两个函数只能在 setup()函数中使用。父级组
件中使用 provide()函数向下传递数据;子级组件中使用 inject()获取上层传递过来的数据。
2、基本语法

父组件:
在setup()函数中调用provide()函数
setup() {provide('globalColor', 'red')},
子组件:
在setup()函数中调用inject()函数setup(props){const state = reactive({color : inject("globalColor")})return state}

Vue Router 4

现在我们安装 vue-router 版本的时候,默认还是安装的 3.x 版本的,由于 vue3 的更新发生很大的变
化,所以为了兼容处理,vue-router 也将发布最新版 4.x 版本了。
1、创建方式
利用createRouter 用来创建router对象

import { createRouter } from 'vue-router'
const router = createRouter({routes
})

2、路由模式
createWebHashHistory路由模式路径带#号
createWebHistory路由模式路径不带#号()

import { createRouter,createWebHashHistory } from 'vue-router'
const router = createRouter({history: createWebHashHistory(),routes
})

Vuex4

1、创建方式

创建 store 容器实例
import { createStore } from 'vuex'
const state = {flag:true
};
var getters = { getFlag(state){//具体的处理}
}
const actions={ CHANGEFLAG({commit}){ commit('CHANGEFLAG');}
};
const mutations = { CHANGEFLAG(state){ //具体的处理}
};
const store = createStore({state,getters,actions,mutations
})
//导出store对象
export default store;

2、组件中的使用

import { useStore } from "vuex";  //导入vuex
export default {props:{name:String},
setup(props) { let store = useStore(); //定义storeconst state = reactive({});return {...toRefs(state), store};},
}

vue3.0新特性及用法相关推荐

  1. Vue3.0新特性及使用方法

    1.1创建Vue3.0项目 通过脚手架 vite 安装: npm init vite-app hello-vue3 # OR yarn create vite-app hello-vue3 Vite目 ...

  2. input change获取改变之前的值和改变之后的值_使用Vue3.0新特性造轮子 WidgetUI3.0 (Input输入框组件)

    我们先看看组件效果图: 基本用法 type属性(type="password") 占位符(placeholder="请输入") 带清除按钮(clear) 输入限 ...

  3. accept 返回0_使用Vue3.0新特性造轮子 WidgetUI3.0 (Upload上传文件组件)

    我们先看看组件效果: 基本使用 可选参数( icon='icon-service') props属性: title(类型 String) 组件显示的文本,默认"上传'. icon(类型 St ...

  4. android5.0新特性 clipping的用法

    android5.0新特性 clipping的用法 1.使用场景 要实现一个按钮的圆角矩形效果,很简单,做过android ui开发的同学应该都会,不就是在drawable中新建一个shape文件,类 ...

  5. Servlet 3.0 新特性概述

    Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若 ...

  6. MySQL 8.0新特性--CTE Recurive(二)

    上一篇介绍了CTE的基本用法,参考MySQL 8.0新特性--CTE(一),本篇再来介绍一下CTE Recurive递归. 1.什么是CTE Recurive? A recursive common ...

  7. mysql8.0默认引擎是什么_MySQL8.0新特性【转】

    Server层,选项持久化 mysql> show variables like '%max_connections%';+------------------------+-------+ | ...

  8. Servlet 3.0 新特性详解

    https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/ Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE ...

  9. Redis 6.0 新特性 ACL 介绍

    Redis 6.0 新特性 ACL 介绍 Intro 在 Redis 6.0 中引入了 ACL(Access Control List) 的支持,在此前的版本中 Redis 中是没有用户的概念的,其实 ...

最新文章

  1. 【Qt】Qt再学习(十二):QGraphicsItem
  2. SGU 260.Puzzle (异或高斯消元)
  3. 混合app用百分比还是rem_一次搞懂前端所有CSS长度单位,px、em、rem、rpx、%....
  4. Web-Rtmp: 使用 WebSocket 在网页上播放 RTMP 直播流
  5. mybatis中传入参数的几种方式
  6. mysql存储表情测试_Mysql正确的储存处emoji表情
  7. 【转载】用廉价的315M遥控模块实现数据传输
  8. java 反取字符串
  9. bug6-ResourceExhaustedError: OOM when allocating tensor with shape[512,15,15,128]
  10. 彻底关闭弹出广告“FF新推荐”
  11. Windows Mobile 6 Professional SDK
  12. C语言表达式语法分析——递归子程序法
  13. php Y2K38 漏洞解决方法
  14. 基于Qt的车载GPS监控系统(2)需求分析
  15. 用python将中文转拼音
  16. 我觉得学习前端前提稍微懂懂英语 虽然我不懂但是我可以多敲
  17. ubuntu显卡驱动安装及cuda、cudnn等的资料备查
  18. 通过两点经纬度信息 计算两点距离(C#语言)
  19. 项目成本管理__成本管理技术__第8条 绩效审查
  20. 软考之信息系统项目管理师(包含2005-2018历年真题详解+官方指定第三版教程+高清学习视频)

热门文章

  1. Delphi在代码编辑栏按回车无法换行
  2. Cry On My Shoulder (背景音乐)
  3. Visual Studio 2005 中的新增安全性功能
  4. HDU2025 查找最大元素【最值】
  5. Bailian2760 数字三角形【DP】
  6. KMP模式匹配算法程序(Python,C++,C)
  7. 推理 —— 猜帽子颜色
  8. 矩阵、优化理论常用记号
  9. 百家姓 —— 特别的姓氏与姓氏的由来
  10. hadoop 生态圈