首页 > 其他分享 >VUE3学习笔记

VUE3学习笔记

时间:2023-06-26 16:22:50浏览次数:36  
标签:count return default 插槽 笔记 学习 VUE3 main true

VUE3出现已经很长时间了,由于工作比较忙,项目比较紧,现在才看,已经晚于很多人了。

这是vue3学习笔记,边学边写。

1,项目创建

  可以使用git下载:winpty vue.cmd create hello-world 使用之后会让你选择vue2还是3

  可以直接node创建:vue create demo

2,组件传值

  多了个类型校验,传值大体写法用法还是一样的

props:{
  list: {
    type: Array, //定义接受数据格式
    required: true,
    default() {
      return ["q", "w"];
    },
  }
}

 

3,插槽

  插槽的写法就有些区别了,使用方式修改了一些,但是大体还是没有变化的。

  在父组件中原先是可以直接使用一般的元素标签,现在只能使用<template>标签包裹

  vue2中 slot="main" 与 name=”main” 搭配使用即可实现插槽

  vue3中 slot="main" 与 v-slot:main 或者 #main 搭配使用,传值方式如下代码

  父组件写法

 1 <template>
 2   <HelloWorld :msg="msg" :list="list" :a="a">
 3     <!-- 写法一 -->
 4     <!-- <template v-slot:header="scope">
 5       <h3 style="color: red">这是插槽++{{scope.text}}+{{scope.text1}}</h3>
 6     </template> -->
 7     <!-- 写法二 -->
 8     <template #header="{ Text1, text }"> 这是插槽++{{ Text1 }}++{{ text }} </template>
 9   </HelloWorld>
10 </template>
11 
12 <script>
13 import HelloWorld from "./components/HelloWorld.vue";
14 export default {
15   name: "App",
16   components: {
17     HelloWorld,
18   },
19   data() {
20     return {
21       msg: false,
22       list: undefined,
23       a: "warning",
24     };
25   },
26 };
27 </script>

  子组件写法

 1 <template >
 2   <div class="hello">
 3     <slot name="header" :text="text" :Text1="text1"></slot>
 4     <div>{{ a }}</div>
 5     <div>{{ msg }}</div>
 6     <div v-for="(item, index) in list" :key="index">
 7       {{ item }}
 8     </div>
 9     <div>
10       count:{{count}}
11     </div>
12   </div>
13 </template>
14 
15 <script>
16 import { ref } from "vue";
17 export default {
18   name: "HelloWorld",
19   props: {
20     msg: {
21       type: Boolean,
22       required: true,
23       default: true,
24     },
25     a: {
26       type: String,
27       required: true,
28       validator(value) {
29         // 这个值必须与下列字符串中的其中一个相匹配
30         return ["success", "warning", "danger"].includes(value);
31       },
32     },
33     list: {
34       type: Array,
35       required: true,
36       default() {
37         return ["q", "w"];
38       },
39     },
40   },
41   data() {
42     return {
43       text: "子组件数据",
44       text1: "批量传值",
45     };
46   },
47   // 在data中声明的对象,在methods中写的function,在mounted、computed、watch中写的js,都可以写在setup中的
48   setup(props) {
49     var count = ref(12)
50     console.log(props.values,count.value, "][");
51     return {
52       count
53     };
54   },
55 };
56 </script>

 

4,setup (重点)

  在vue2中,我们将数据定义在函数 data 中,执行函数定义在各个生命周期中,数据处理在监听函数或者计算属性,

  在vue3中,setup 函数可以做到所有,生命周期,数据处理,监听属性等。但是需要按需引入

 

标签:count,return,default,插槽,笔记,学习,VUE3,main,true
From: https://www.cnblogs.com/jickma/p/16523795.html

相关文章

  • JavaScript进阶08笔记
    语法和数据类型声明JavaScript有三种声明方式。var声明一个变量,可选初始化一个值。let声明一个块作用域的局部变量,可选初始化一个值。const声明一个块作用域的只读常量。 声明变量你可以用以下三种方式声明变量:使用关键词var。例如varx=42。这个语......
  • JavaScript进阶09笔记
    错误处理异常处理语句你可以用throw语句抛出一个异常并且用try...catch语句捕获处理它。throw语句try...catch语句异常类型JavaScript可以抛出任意对象。然而,不是所有对象能产生相同的结果。尽管抛出数值或者字母串作为错误信息十分常见,但是通常用下列其中一种异......
  • JavaScript学习 -- 高阶函数
    一、普通函数比较大小写声明函数判断大于或小于数组中的某个数letarr=[1,2,3,4,5,6,7,8,9]functionaiyou(a){for(leti=0;i<arr.length;i++){if(arr[i]>a){console.log(arr[i])}}console.log("****************************")}functionbucuo(a){for(......
  • Livecd笔记
    注:以centos7livecd为例1.目录结构[root@santiagod~]#tree/mnt/mnt├──EFI│  └──BOOT│  ├──BOOTX64.efi│  ├──fonts│  │  └──unicode.pf2│  ├──grub.cfg│  └──grubx64.efi├──isol......
  • mkisofs与isoinfo笔记
    #!/usr/bin/envbash###################################DownloadtheWindows10x64ISOWIN10_IMG_DESTINATION="./windows.iso"WIN10_IMG_ARCH="x64"if[!-f"${WIN10_IMG_DESTINATION}"];thenif[["$WIN10_IMG_AR......
  • Freertos学习02-Task传入参数
    一、前言介绍了freertos具有许多特点,其中的任务调度将有助提高系统的实时性,并将各任务解耦,有助于产品的后续维护与开发,上一节介绍了freertos中关于任务的创建与删除,这一节介绍如何在创建函数的同时并传递参数。二、传递参数再次回顾xTaskCreate()函数的用法以及各输入参数,其中......
  • Java学习笔记(十七)
    1、手写一个懒汉式的单例模式&解决其线程安全问题,并且说明为什么这样子去解决classMythreadextendsThread{      privatestaticMythreadmythread;      privateMythread(){   }   publicstaticMythreadgetInstance()throwsInterrupte......
  • 学习websocket,原来这么简单
    简单介绍websocketWebSocket是一种在TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准。然后WebSocketAPI也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服......
  • 【个人笔记】免费可用中文版ChatGPT,国内免费版ChatGPT
    ChatGPT介绍ChatGPT是个啥?Openai团队研发的一个人工智能聊天程序。Chat:表示“聊天”。GPT:则是Generative、Pre-trained、Transformer的缩写,表示“预训练语言模型”,可以理解成一个“会说话”的人工智能。即:可以对话的人工智能,你问他什么他都可以回答。 为什么那么多免费C......
  • VUE3中实现“收起”“展开”功能
    《好记性不如烂笔头系列》<template><van-row><divclass="roadshowDescValueDiv"><divref="desContent"class="desContent":class="{'show-all':desShowAll}">......