vue3.0的变化
初涉vue3.0,下面是我在demo中遇到的一些问题(我是用的vue-cli进行开发)
【1】main.js中配置
第一个变化
vue2.x === Vue.prototype.$baseURL= "https://www.xxxxxx.online/mxs/"
vue3.0 === const app = createApp(App); app.config.globalProperties.$baseURL= "https://www.xxxxxx.online/mxs/"
vue3.0中main.js里面已经没有Vue,取代用的是createApp(App);
【2】this的问题
vue2.x === 可以在生命周期中通过this来获取当前实例;
vue3.x === 已经没有this指向;
首先引入 import { getCurrentInstance } from "vue";
再在setup 中 const { proxy } = getCurrentInstance(); 这里proxy就可以得到几乎等同于this的作用
//补充说明:有的文章说用 const { ctx } = getCurrentInstance();但是这样打包后会报错,用proxy就可以完美避免
【3】数据声明的变化
import { ref } from "vue";
setup() {
let str1 = "str1"; //如果只是在setup内部调用,不在页面渲染的数据可以直接生命;
let str2 = ref(str1) //需要在页面渲染的数据用ref包裹,这样才能在后期修改变量值时,页面同步绚烂
str2.value = "我改变了!" //变量值被ref包裹时,想要修改得通过 变量名.value来修改否则会报错
return {
str2
}
}
【4】this.$emit的改变
vue2.x === 子组件 this.$emit("handleFun",data);
vue3.x === setup(props,context) {
context.emit("handleFun",data); //vue3.0 setup自带两个参数props,context可以直接使用注意这里emit没有$符号
父组件中还是同样的方式操作
}
【5】props的用法
vue2.x === props:["attr1","attr2"];
vue3.x ===
html部分
<div v-for(item,index) in attr2 :key="index" :style="{ 'color' : attr1 }" >
script部分
import { toRefs } from "vue";
props:{
attr1:String,
attr2:Object
},
setup(props) {
const { attr1 , attr2 } = toRefs(props); //需要在setup读取props中属性值时使用,如果直接在html使用同vue2.x中一样直接使用即可
const iNeed1 = attr1.value; //使用时得用 .value 来读取属性值
const iNeed2 = attr2.value
return{
props //记得此处不return props ,html中将接受不到props属性
}
}
//入住博客第一篇文章,如果觉得有帮助请帮忙点个赞什么的,如果觉得不好请谅解,培训出来的小菜比,全靠自己摸索====难受,有什么问题也可以跟我留言,如果我有过类似经历会更新博客回答你的问题
vue3.0的变化的更多相关文章
- vue3.0中的双向数据绑定方法
熟悉vue的人都知道在vue2.x之前都是使用object.defineProperty来实现双向数据绑定的 而在vue3.0中这个方法被取代了 1. 为什么要替换Object.definePrope ...
- vue2.0 与 vue3.0 配置的区别
提示:要了解vue2.0与vue3.0区别,首先你要熟悉vue2.0 从最明显最简单的开始 项目目录结构 可以明显的看出来,vue2.0与3.0在目录结构方面,有明显的不同(vue3.0我是安装了cs ...
- vue3.0和2.0的区别,Vue-cli3.0于 8月11日正式发布,更快、更小、更易维护、更易于原生、让开发者更轻松
vue3.0和2.0的区别Vue-cli3.0于 8月11日正式发布,看了下评论,兼容性不是很好,命令有不少变化,不是特别的乐观vue3.0 的发布与 vue2.0 相比,优势主要体现在:更快.更小. ...
- Vue3.0 Function API---------引用
1.了解 Vue 3.0 是否有 break change,就像 Python 3 / Angular 2 一样? 不,100% 兼容 Vue 2.0,且暂未打算废弃任何 API(未来也不).之前有草 ...
- 快速进阶Vue3.0
在2019.10.5日发布了Vue3.0预览版源码,但是预计最早需要等到 2020 年第一季度才有可能发布 3.0 正式版. 可以直接看 github源码. 新版Vue 3.0计划并已实现的主要架构改 ...
- vue3.0 加载json的“另类”方法(非ajax)
问题 加载json一定要用ajax的方式吗? 最近学习vue3.0,在实现一个功能的时候发现一个问题-- 写代码的时候,需要的json太长.太多,和代码放在一起太混乱.看代码总有翻来翻去,又没有&qu ...
- vue3.0 的 Composition API 的一种使用方法
网上讨论的文章已经很多了,这里举一个简单的例子来讨论一下 Composition API 的用法,具体问题才好具体讨论嘛. 假如我们要做一个论坛的讨论列表和分页,以前是把需要的数据都放在data里面, ...
- Vue3.0 响应式数据原理:ES6 Proxy
Vue3.0 开始用 Proxy 代替 Object.defineProperty了,这篇文章结合实例教你如何使用Proxy 本篇文章同时收录[前端知识点]中,链接直达 阅读本文您将收获 JavaSc ...
- 2021新年 Vue3.0 + Element UI 尝鲜小记
2021年,又是新的一年,Vue 已经发布 3.0 版本,最好用的 UI 组件库 Element UI 也发布了适配 Vue3.0 的新版本,是时候开始学习一下这两个新技术. 本文主要记录了使用 Vu ...
随机推荐
- unresolved external symbol _WinMain@16
vc下,新建一个win32项目,就写了个main函数,打印hello ,出现了如标题所述的错误 原因: 你建立了一个WINDOWS应用程序,可是你却在入口函数的时候使用main而不是WinMain 解 ...
- 用PS给视频磨皮美颜
无意间找到的,但是一个10分钟的视频渲染了我一天的时间,但是效果是不错的 参考视频链接 https://www.bilibili.com/video/BV1b7411m74e 视频中涉及的添加插件链接 ...
- Xshell、Xftp评估过期的解决办法
介绍一个 FTP客户端-IIS7服务器管理工具作为FTP客户端,它支持批量管理ftp站点.定时上传和定时下载,定时备份,且操作简洁.同时iis7服务器管理工具还是vnc客户端.并且支持批量管理 ...
- Java中Stream流相关介绍
什么是Stream? Stream是JDK8 API的新成员,它允许以声明性方式处理数据集合 特点 代码简洁: 函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告别for循环 多核友好 ...
- shell脚本常用语法详解
逻辑控制 if 语法:注意空格 a=1b=2if [ $a == $b ]then echo "a==b"elif [ $a -gt $b ]then echo &qu ...
- linux-TCP多线程的并发服务器- 以言责人甚易,以义持己实难!!!
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <ti ...
- [bug] Flask css 不更新
参考 https://blog.csdn.net/weixin_30454481/article/details/97108510
- 012.Kubernetes的configmap和secret配置
使用configmap对多有的配置文件进行统一管理 一 configmap配置管理 1.1 检查mysql的配置 [root@docker-server1 storage]# kubectl get ...
- nginx 的三种虚拟主机配置方法
nginx三种虚拟主机配置的方法. 基于端口 在生产环境中一般使用端口或者域名. [root@web01 /etc/nginx/conf.d]# cat web01.conf server { lis ...
- vue+element-ui, el-upload组件 文件上传之前return false,会自动调用文件移除回调问题
日常搬砖的时候,项目中在使用element-ui的上传组件,但是当我在文件上传文件之前的回调里面做了些文件格式的二次校验和文件大小的校验的时 然后 return false 会发现调用 文件移除的回调 ...