Vue3.0初体验
最近看了Vue3.0的相关信息,相比Vue2.0有以下优点:
Performance:性能更比Vue 2.0强。Tree shaking support:可以将无用模块“剪辑”,仅打包需要的。Composition API:组合APIFragment, Teleport, Suspense:“碎片”,Teleport即Protal传送门,“悬念”Better TypeScript support:更优秀的Ts支持Custom Renderer API:暴露了自定义渲染API
项目搭建:
由于现在还只是插件形式,所有要先创建Vue2.0项目再进行安装插件,插件如下:
建好Vue2.0项目后,进入文件夹运行此命令 vue add vue-next ,完后Vue3.0创建完毕。
代码:
所需模块的导入,与Vue2.0最大区别就是需要啥导入啥,不用全部一起导入





其次就是所有逻辑都在setup函数中编写,其相当于Vue2.0的BeforeCreate、created钩子,
声明周期:
onBeforeMount
onMounted
onBeforeUpdate
onUpdated
onBeforeUnmount
onUnmounted
响应式原理:Vue3.0用Proxy代替Vue2.0的defineProperty,所以更快
const dproxy = new Proxy(obj, {
get: function(target, key, receiver) {
console.log(receiver);
return target[key];
},
set: function(target, key, newVal, receiver) {
console.log(receiver);
target[key] = newVal;
return target[key];
}
});
dproxy.name = 'terry';
console.log(obj.name);
重写Vdom加静态标记,优化diff算法,所以更快
自定义响应式数据:
const useDebouncdedRef = (value, delay = 200) => {
let timeout;
return customRef((track, trigger) => {
return {
get() {
track();
return value;
},
set(newValue) {
clearTimeout(timeout);
timeout = setTimeout(() => {
value = newValue;
trigger();
}, delay);
}
};
});
};
原生响应式:两种方式
const count = ref(0);
const state = reactive({
msg: 'wellcome to Vue3.0!',
size: 0
});
改变值用count.value方式,如
const increament = () => {
count.value++;
};
watch监听:两种方式
watch([() => count.value, () => customText.value], val1 => {
console.log(val1);
// console.log(`count is ${val1}`);
// console.log(`customText is ${val1}`);
});
watchEffect(() => {
console.log(`i am watchEffect:${count.value}`);
console.log(`i am watchEffect:${customText.value}`);
});
计算属性computed:
const doubleCount = computed(() => count.value * 2);
获取上文对象:
const { ctx } = getCurrentInstance();
console.log(ctx);
ctx.$store.commit('setTestA', count)
store与router
const store = useStore();
const router = useRouter();
父子或父与孙子组件传值provide与inject
provide('injdectmsg', 'i am a provide');
const injectMsg = inject('injdectmsg')
以上就是Vue3.0的知识,欢迎大家一起学习交流! (Vue3.0开发仿小米商城github地址:https://github.com/ytg123/Vue3.0-Shopping)
Vue3.0初体验的更多相关文章
- VUE 3.0 初体验之路
在2020年9月中旬,vue.js发布了3.0正式版,在不久的将来,VUE3.0 也终将成为大前端的必然趋势, 环境搭建 node 版本要求: Node.js8.9 或更高版本 ,输入 node -v ...
- MySQL8.0初体验
MySQL8.0的官方社区开源版出来有段时间了,而percona的8.0版本还没有正式对外发布(已发布测试版),一直以来也没安装体验下这个号称质的飞跃的版本,今天正好有些时间就下了安装体验体验. 一. ...
- (一) .net core 2.0 初体验
1..net core 2.0环境 .net core 下载地址:https://www.microsoft.com/net/core#windowscmd 问题一:提示[Failed to load ...
- 【swoole2.0】 PHP + swoole2.0 初体验
背景: centos7 PHP7.1 swoole2.0 准备工作: 一. swoole 扩展安装 1 下载swoole cd /usr/local wget -c https://git ...
- TensorFlow2.0初体验
TF2.0默认为动态图,即eager模式.意味着TF能像Pytorch一样不用在session中才能输出中间参数值了,那么动态图和静态图毕竟是有区别的,tf2.0也会有写法上的变化.不过值得吐槽的是, ...
- vue-cli3.0 初体验
vue-cli3.0 自我记录 其实在2018年8月10号,vue-cli3.0就已经面世了,由于项目中应用的全是2.x版本,所以并不了解3.0的vue-cli发生了什么变化,那今天尝试了下遇见的问题 ...
- vue3.0初尝试
- ASP.NET2.0组件控件开发视频 初体验
原文:ASP.NET2.0组件控件开发视频 初体验 ASP.NET2.0组件控件开发视频 初体验 录了视频,质量不是很好,大家体验下.我会重新录制的 如果不清楚,可以看看http://v.youku. ...
- vue.js2.0 自定义组件初体验
理解 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能.在有些情况 ...
随机推荐
- lua 源码阅读 5.3.5 笔记
记录下吧,断断续续读了几周,收益还是很多的. 推荐阅读顺序: 1) 基础数据类型 lstring.c ltable.c lobject.c lfunc.c lstate.c 2) 标准库(这个相对简 ...
- 多测师讲解自动化测试 _RF关键字001_( 中)_高级讲师肖sir
1.关键字如下 1.1Get Text 1.2Get Value 2.#上下滑动(滚动条) Open Browser http://www.jd.com gc Maximize Browser Win ...
- 最大子段和之M子段和
最大M子段和 题目模型 N个整数组成的序列 \(a_1,a_2,a_3,-,a_n\) ,将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的. 问题分析 方法一: 看到序列,我们首先要尝试 ...
- PHP 超级全局变量 $_GET
https://www.php.cn/php/php-superglobals.html https://m.php.cn/code/11853.html
- selenium基础 --获取内容
from time import sleep from selenium import webdriver browser = webdriver.Chrome() url = "http: ...
- 第十章 nginx常用配置介绍
一.虚拟主机 1.配置方式 #虚拟主机配置方式:1.基于多IP的方式2.基于多端口的方式3.基于多域名的方式 2.方式一:基于多IP的方式 1.第一个配置文件[root@web02 /etc/ngin ...
- Linux命令行history
概述 当执行命令后,系统默认会在内存记录执行过的命令 当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/.bash_history 登录shell时,会读取命令历史文件中记录下的命令加 ...
- swagger使用随笔
2020-10-21 在一技术群里看到有个大佬想用 swagger 实现个功能:基础 Api 项目中写好通用的接口,配置好 swagger .上级项目直接引用项目,就能访问 swagger 起来用.相 ...
- ImageLoader简介和使用方法
1.功能概要 Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示. (1).使用多线程加载图片(2) ...
- 腾讯云函数免费搭建onedrive网盘
目录 腾讯云函数 介绍 真免费? 搭建教程 准备条件 创建云函数 创建触发器 配置SecretId和SecretKey 添加onedriver盘 自定义域名 访问路径处理 总结 搭建期间遇到的问题 想 ...