最近看了Vue3.0的相关信息,相比Vue2.0有以下优点:

  • Performance:性能更比Vue 2.0强。
  • Tree shaking support:可以将无用模块“剪辑”,仅打包需要的。
  • Composition API:组合API
  • Fragment, Teleport, Suspense:“碎片”,TeleportProtal传送门,“悬念”
  • 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初体验的更多相关文章

  1. VUE 3.0 初体验之路

    在2020年9月中旬,vue.js发布了3.0正式版,在不久的将来,VUE3.0 也终将成为大前端的必然趋势, 环境搭建 node 版本要求: Node.js8.9 或更高版本 ,输入 node -v ...

  2. MySQL8.0初体验

    MySQL8.0的官方社区开源版出来有段时间了,而percona的8.0版本还没有正式对外发布(已发布测试版),一直以来也没安装体验下这个号称质的飞跃的版本,今天正好有些时间就下了安装体验体验. 一. ...

  3. (一) .net core 2.0 初体验

    1..net core 2.0环境 .net core 下载地址:https://www.microsoft.com/net/core#windowscmd 问题一:提示[Failed to load ...

  4. 【swoole2.0】 PHP + swoole2.0 初体验

    背景: centos7   PHP7.1   swoole2.0 准备工作: 一.  swoole  扩展安装 1 下载swoole cd /usr/local wget -c https://git ...

  5. TensorFlow2.0初体验

    TF2.0默认为动态图,即eager模式.意味着TF能像Pytorch一样不用在session中才能输出中间参数值了,那么动态图和静态图毕竟是有区别的,tf2.0也会有写法上的变化.不过值得吐槽的是, ...

  6. vue-cli3.0 初体验

    vue-cli3.0 自我记录 其实在2018年8月10号,vue-cli3.0就已经面世了,由于项目中应用的全是2.x版本,所以并不了解3.0的vue-cli发生了什么变化,那今天尝试了下遇见的问题 ...

  7. vue3.0初尝试

  8. ASP.NET2.0组件控件开发视频 初体验

    原文:ASP.NET2.0组件控件开发视频 初体验 ASP.NET2.0组件控件开发视频 初体验 录了视频,质量不是很好,大家体验下.我会重新录制的 如果不清楚,可以看看http://v.youku. ...

  9. vue.js2.0 自定义组件初体验

    理解 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能.在有些情况 ...

随机推荐

  1. shell-添加条件测试的多种方法语法介绍与简单实战

    1. 条件测试  1) 测试语句 1) 条件测试语法 在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作,有时也会通过与if等条件语句相结合,使我们可以方便的完成判断. ...

  2. Linux系统安装JDK1.8

    2020最新Linux系统发行版ContOS7演示安装JDK. 为防止操作权限不足,建议切换root用户,当然如果你对Linux命令熟悉,能够自主完成权限更新操作,可以不考虑此推荐. 更多命令学习推荐 ...

  3. 氵0x a

    从今天开始记录这些东西,希望以后自己不出现在这上

  4. 集训DP复习整理

    DP复习 集训%你赛2:测绘(审题DP) 经过2000+个小时的努力终于把这道题做出来的蒟蒻通 分析: 这道题我一直没做出来的原因就是因为我太蒟了题面看不懂,题面读懂了,其实不是特别难. 题目翻译: ...

  5. composer 阿里云加速 转

    阿里云 Composer 全量镜像 本镜像与 Packagist 官方实时同步,推荐使用最新的 Composer 版本. 最新版本: 1.10.8 下载地址: https://mirrors.aliy ...

  6. selenium 浏览器标签切换

    from time import sleep from selenium import webdriver from selenium.webdriver.chrome.options import ...

  7. 《Kafka笔记》4、Kafka架构,与其他组件集成

    目录 1 kafka架构进阶 1.1 Kafka底层数据的同步机制(面试常问) 1.1.1 高水位截断的同步方式可能带来数据丢失(Kafka 0.11版本前的问题) 1.1.2 解决高水位截断数据丢失 ...

  8. C++学习---顺序表的构建及操作

    #include<iostream> #include<fstream> using namespace std; #define MAXLEN 100 //定义顺序表 str ...

  9. 抽空学学KVM(七):虚拟机快照和克隆

    前几天学写了KVM中qume-info命令的使用,今天学学在虚拟化里面用处广泛的快照和克隆功能,snapshot和virt-clone.对于snapshot命令的使用其实很简单.进入virsh界面以后 ...

  10. 基于Spring读写分离

    为什么是基于Spring的呢,因为实现方案基于Spring的事务以及AbstractRoutingDataSource(spring中的一个基础类,可以在其中放多个数据源,然后根据一些规则来确定当前需 ...