Vue3学习笔记+报错记录

news/2024/4/29 14:23:42

文章目录

    • 1.创建Vue3.0工程
      • 1.1使用vue-cli创建
      • 1.2 使用vite创建工程
      • 1.3.分析Vue3工程结构
    • 2.常用Composition
      • 2.1 拉开序幕的setup
      • 2.2 ref函数_处理基本类型
      • 2.3 ref函数_处理对象类型
      • 2.4 ref函数使用总结

1.创建Vue3.0工程

1.1使用vue-cli创建

查看@vue/cli版本,确保@vue/cli版本在4.5.0以上
在这里插入图片描述
如果不是,则重新安装或升级你的@vue/cli

npm install -g @vue/cli

创建vue项目,去你想创建的目录下,执行该语句

vue create vue3_teat

出现报错,解决问题参考博客npm install安装时一直idealTree:npm: sill idealTree buildDeps解决方案
在这里插入图片描述
需要更换一下镜像网站,进入cmd后输入

npm config set registry https://registry.npmmirror.com

查看是否成功

npm config get registry

创建成功页面
在这里插入图片描述
启动项目,注意路径要切换到项目里

cd vue3_test
npm run serve

在这里插入图片描述
最后复制地址到浏览器运行查看

1.2 使用vite创建工程

什么是vite? --新一代前端构建工具
现在这一代构建工具是webpack
vite的启动速度会更快,动态引用(代码分割)

传统构建与vite构建对比?
传统的是先打包好再启动服务器,vite是先启动服务器,再按需编译,不再等待整个应用编译完成。

1.3.分析Vue3工程结构

在这里插入图片描述
构造函数与工厂函数区别?
构造函数需要通过new关键字调用,工厂函数无需通过new关键字调用

2.常用Composition

2.1 拉开序幕的setup

1.Vue3中的一个新的配置项,值为一个函数
2.组件中所用到的:数据、方法等,均要配置在setup中

3.setup函数的两种返回值
如果返回一个对象,则对象中的属性,方法,在模板中均可以直接使用!!!
即我写在return里面的属性、方法在template中是可以直接使用的
如果返回一个渲染函数,则可以自定义渲染内容

<template><h1>我是App组件</h1><h2>姓名:{{name}}</h2><h2>年龄:{{age}}</h2><button @click="sayHello">说话</button>
</template><script>
export default {name: 'App',//此处只是测试一下setup,暂时不考虑响应式的问题setup:function(){//数据,所谓数据就是直接定义变量let name = '张三'let age = 18//方法function sayHello(){alert(`我叫${this.name},我${this.age}岁了,你好啊!`)}return{name,age,sayHello}}
}
</script>

4.vue2与vue3尽量不要混用
vue2配置(data,methos,computed…)中可以访问到setup中的属性,方法。
但是setup中不能访问到vue2配置(data,methods,computed…)
如果有重名,setup优先
5.setup不能是一个async函数,因为返回值不再是return的对象,而是promise,模板看不到return对象中的属性

2.2 ref函数_处理基本类型

vue2中ref是一个标签属性,目的是为了给这个元素打标识

<input ref="qwe" ....../> 

有点类似于原生js里面id的替代者
在vue3中,ref标签仍可使用,不过多了ref函数

首先看一个例子:代码如下,使用下列代码,点击按钮,页面数据没有发生变化,但是控制台打印,数据实际上是改变了的

<template><h1>一个人的信息</h1><h2>姓名:{{name}}</h2><h2>年龄:{{age}}</h2><button @click="changeInfo">change info</button>
</template><script>
export default {name: 'App',//此处只是测试一下setup,暂时不考虑响应式的问题setup:function(){//数据,所谓数据就是直接定义变量let name = '张三'let age = 18//functionfunction changeInfo(){name='lisi'age=48console.log(name,age)}return{name,age,changeInfo}}
}
</script>

在这里插入图片描述
原因是,我们定义的数据不是响应式的数据,那么,如何将普通数据变成响应式数据呢,这就需要借助ref函数了
ref加工后的数据如下,我们写的字符串变成了一个引用实现(RefImpl)对象:
在这里插入图片描述
在这里插入图片描述
但是在模板里面不需要.value也能自动读取

2.3 ref函数_处理对象类型

上面说到,ref处理基本类型,会将我们写的字符串变成一个引用实现对象。
but,如果ref处理对象类型,那么对象类型里面的数值又是哪种数据类型呢?
在这里插入图片描述
我们发现,它不是refimpf实例对象了,而是proxy实例对象
这里涉及到vue3对不同数据进行响应式的处理

底层用的都是proxy实例对象,它是windows自带的,是es6里面的一个新的东西。

即一旦我拿到ref里面的对象,后续虽然也是响应式的,但是不需要再加.value来读值了

2.4 ref函数使用总结

作用:定义一个响应式的数据

语法:const XXX = ref(initValue)

  • 创建一个包含响应式数据的引用对象(reference对象)
  • JS中操作数据:xxx.value
  • 模板中读取数据:不需要value,直接<div>{{xxx}}<div>

备注:

  • 接收的数据可以是:基本类型,也可以是对象类型
  • 基本类型的数据:响应式依然是靠Object.defineProperty()的get和set完成的
  • 对象类型的数据:内部“求助”了Vue3的一个

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/11763.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Java-运算符

运算符 Java语言支持如下运算符&#xff1a; 算术运算符&#xff1a;&#xff0c;-&#xff0c;*&#xff0c;/&#xff0c;%&#xff0c;&#xff0c;--复制运算符&#xff1a;关系运算符&#xff1a;>, <, >, <, , !instanceof逻辑运算符&#xff1a;&&…

vue中内置指令v-model的作用和常见使用方法介绍以及在自定义组件上支持

文章目录 一、v-model是什么二、什么是语法糖三、v-model常见的用法1、对于输入框&#xff08;input&#xff09;&#xff1a;2、对于复选框&#xff08;checkbox&#xff09;&#xff1a;3、对于选择框&#xff08;select&#xff09;&#xff1a;4、对于组件&#xff08;comp…

Nginx配置文件修改结合内网穿透实现公网访问多个本地web站点

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载好后解压进入nginx目…

ChatGPT 赚钱初学者指南(上)

原文&#xff1a;The Beginner’s Guide to Earning Money Online with ChatGPT 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第一章&#xff1a;理解基础知识 什么是 ChatGPT&#xff1f; 在人工智能与人类对话相遇的数字织锦中&#xff0c;ChatGPT 作为一个突出…

Vue ts 如何给 props 中的变量指定特定类型,比如 Interface 类的

Vue ts 如何给 props 中的变量指定特定类型&#xff0c;比如 Interface 类的 我有一个这样的变量值类型 一、在没用 ts 之前的 props 类型指定方式 我们都知道之前在没用 ts 之前的 props 变量值类型指定方式&#xff1a; 如下图&#xff0c;billFood 定义方式是这样的&…

Web大并发集群部署之集群介绍

一、传统web访问模型 传统web访问模型完成一次请求的步骤 1&#xff09;用户发起请求 2&#xff09;服务器接受请求 3&#xff09;服务器处理请求&#xff08;压力最大&#xff09; 4&#xff09;服务器响应请求 传统模型缺点 单点故障&#xff1b; 单台服务器资源有限&…