初涉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-鸟菜-0-计算机概论

    Linux-鸟菜-0-计算机概论 这一章在说计算机概论,额....,总的来说看完之后还是有点收获,回忆了下计算机基本知识.没有什么可上手操作的东西,全是概念,直接把最后的总结给截图过来吧,因为概念的话 ...

  2. calc 用法以及原理

    CSS3 的 calc() 函数允许我们在属性值中执行数学计算操作.例如,我们可以使用 calc() 指定一个元素宽的固定像素值为多个数值的和. 它是CSS预处理器 .foo { width: 100 ...

  3. Elasticsearch exception [type=mapper_parsing_exception, reason=No type specified for field [X]

    可能原因是实体类属性没有指定映射类型 创建mapping时需要指定field的type,如果不指定则报错 错误 //这是一个类中的字段 @Field(store = false) private St ...

  4. idea中修改代码大小设置

    修改代码大小 控制台字体大小

  5. LINQ之查询语法

    新开一节LINQ的入门讲解. LINQ(Language Integrated Query)语言集成查询,是C#语言的扩展,它的主要功能是从数据集中查询数据,就像通过sql语句从数据库查询数据一样(本 ...

  6. Promise解析(待完成)

    Promise是一种异步操作的解决方案,将写法复杂的传统的回调函数和监听事件的异步操作,用同步代码的形式表达出来.避免了多级异步操作的回调函数嵌套. 1.主要用于异步计算 2.可以将异步操作队列化,按 ...

  7. Jenkins 基础篇 - 任务分类

    从前面的小节中我们看到在创建 Jenkins 任务的时候有好几种类型,如果你专门安装了 Maven 相关插件,可能还会有一个[构建一个 maven 项目]的任务类型,那这些任务类型究竟有何区别,以及我 ...

  8. RabbitMQ高级特性

    消息的可靠投递 在使用Rabbitmq的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景.Rabbitmq为我们提供了两种方式用来控制消息的投递可靠性模式 confirm确认模式 return ...

  9. 通过Dapr实现一个简单的基于.net的微服务电商系统(十四)——开发环境容器调试小技巧

    之前有很多同学提到如何做容器调试,特别是k8s环境下的容器调试,今天就讲讲我是如何调试的.大家都知道在vs自带的创建项目模板里勾选docker即可通过F5启动docker容器调试.但是对于启动在k8s ...

  10. [Java] 部署到Linux

    阿里云 控制台->云服务器ECS->实例->创建实例 计费方式 地域 网络 安全组:默认安全组 公网IP地址:分配 实例 公网带宽:1M ECS服务器:公共镜像CentOS 存储 购 ...