初涉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的变化的更多相关文章

  1. vue3.0中的双向数据绑定方法

    熟悉vue的人都知道在vue2.x之前都是使用object.defineProperty来实现双向数据绑定的 而在vue3.0中这个方法被取代了 1. 为什么要替换Object.definePrope ...

  2. vue2.0 与 vue3.0 配置的区别

    提示:要了解vue2.0与vue3.0区别,首先你要熟悉vue2.0 从最明显最简单的开始 项目目录结构 可以明显的看出来,vue2.0与3.0在目录结构方面,有明显的不同(vue3.0我是安装了cs ...

  3. vue3.0和2.0的区别,Vue-cli3.0于 8月11日正式发布,更快、更小、更易维护、更易于原生、让开发者更轻松

    vue3.0和2.0的区别Vue-cli3.0于 8月11日正式发布,看了下评论,兼容性不是很好,命令有不少变化,不是特别的乐观vue3.0 的发布与 vue2.0 相比,优势主要体现在:更快.更小. ...

  4. Vue3.0 Function API---------引用

    1.了解 Vue 3.0 是否有 break change,就像 Python 3 / Angular 2 一样? 不,100% 兼容 Vue 2.0,且暂未打算废弃任何 API(未来也不).之前有草 ...

  5. 快速进阶Vue3.0

    在2019.10.5日发布了Vue3.0预览版源码,但是预计最早需要等到 2020 年第一季度才有可能发布 3.0 正式版. 可以直接看 github源码. 新版Vue 3.0计划并已实现的主要架构改 ...

  6. vue3.0 加载json的“另类”方法(非ajax)

    问题 加载json一定要用ajax的方式吗? 最近学习vue3.0,在实现一个功能的时候发现一个问题-- 写代码的时候,需要的json太长.太多,和代码放在一起太混乱.看代码总有翻来翻去,又没有&qu ...

  7. vue3.0 的 Composition API 的一种使用方法

    网上讨论的文章已经很多了,这里举一个简单的例子来讨论一下 Composition API 的用法,具体问题才好具体讨论嘛. 假如我们要做一个论坛的讨论列表和分页,以前是把需要的数据都放在data里面, ...

  8. Vue3.0 响应式数据原理:ES6 Proxy

    Vue3.0 开始用 Proxy 代替 Object.defineProperty了,这篇文章结合实例教你如何使用Proxy 本篇文章同时收录[前端知识点]中,链接直达 阅读本文您将收获 JavaSc ...

  9. 2021新年 Vue3.0 + Element UI 尝鲜小记

    2021年,又是新的一年,Vue 已经发布 3.0 版本,最好用的 UI 组件库 Element UI 也发布了适配 Vue3.0 的新版本,是时候开始学习一下这两个新技术. 本文主要记录了使用 Vu ...

随机推荐

  1. Linux提权之利用 /etc/passwd 文件

    当我们获得了某个Linux服务器的低权限之后,我们想要对该低权限账号进行提权,以执行更多的操作. 接下来我们的提权是利用 /etc/passwd 文件的可写入权限,导致我们写入一个其他用户进去. 首先 ...

  2. angr脚本——以angrctf解题记录为参考

    angr脚本--以angrctf解题记录为参考 ​ angr是用于逆向工程中进行二进制分析的一个python框架 ​ 符号执行 (Symbolic Execution)是一种程序分析技术.其可以通过分 ...

  3. FileItem的部分方法解释

    FileItem的部分方法: boolean isFormField() isFormField() 方法用来判断FileItem对象里面封装的数据是一个普通文本表单字段,还是一个文件表单字段.如果是 ...

  4. mac Idea快捷键小记

    重写父类方法:control + o 实现父类方法:control + i 最全的一个按键:control + 回车

  5. Python数模笔记-Sklearn(3)主成分分析

    主成分分析(Principal Components Analysis,PCA)是一种数据降维技术,通过正交变换将一组相关性高的变量转换为较少的彼此独立.互不相关的变量,从而减少数据的维数. 1.数据 ...

  6. 【BUAA软工】Beta阶段测试报告

    项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:Beta阶段测试报告 测试报告 发现的bug Beta阶段的bug [已解决]CPP项目无法进行调试 [已解决] 注册界面注册后不能够自 ...

  7. OpenStack平台功能性测试工具Tempest安装

    社区对OpenStack平台功能性的测试工具采用Tempest,性能测试采用Rally. 1.什么是Tempest tempest├── api # API的测试集├── cli # OpenStac ...

  8. Java 的序列化 (Serializable)(Day_09)

    我们的火,要把世界都点燃 运行环境 JDK8 + IntelliJ IDEA 2018.3 什么是序列化,反序列化 序列化是将对象状态转换为可保持或传输的格式的过程. 与序列化相对的是反序列化,它将流 ...

  9. 5分钟安装docker教程

    Centos安装docker需要操作系统是 CentOS 7 or 8,必须启用centos extras存储库.默认情况下,此存储库处于启用状态,但如果已禁用它,则需要重新启用它. 卸载旧版本 老版 ...

  10. 图解CSS布局(一)- Grid布局

    图解CSS布局(一)- Grid布局 先上图 简介 Grid 布局是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可 ...