首页 > 其他分享 >Vue3学习日记 Day1

Vue3学习日记 Day1

时间:2024-03-17 12:05:09浏览次数:23  
标签:count vue const setup Day1 Vue3 message 数据 日记

一、简介

1、简介

    Vue3是新的默认版本,拥有更快的速度,更好的语法

二、使用create-vue搭建Vue3项目

1、创建项目

1、介绍

    create-vue是Vue官方新的脚手架工具,底层切换为了vite,为开发提供极速响应

2、使用

    2.1、确定环境条件

        2.1.1已安装16.0或更高版本的Node.js

        node -v

    2.2、创建一个Vue应用

        npm init vue@latest

2、认识文件

1、vite.comfig.js —— 基于vite的配置

2、main.js —— createApp函数创建应用实例

    //将创建进行了封装,保证了每个实例的独立封闭性

    //如:

    // 路由:createRouter 仓库:createStore

    //注:

    // createApp(App).mount('#app')中

    // mount('#app')指,设置挂载点为id = app的位置

3、app.vue

    //script加上setup,允许在script中直接编写组合式API

    //模板template不再要求唯一根元素

    //组件不再需要单独注册,导入即可使用

4、assets

    //图片、样式文件的目录

5、components

    //组件目录

三、组合式API

1、setup

1、介绍

    setup是组合式API的入口

2、用法

    setup(){

        //语句,执行时机在beforeCreate之前  

        //注:setup中,获取不到this

        //注:在setup中可以提供数据和函数,但若要在template中使用,需要return                 

        //如:

        const message = 'Hello Vue3!'

        const logMessage = () =>{

            console.log(message)        

        }  

        return{

            message,

            logMessage        

        }                   

    },

2、<script setup>语法糖

1、介绍

    当使用了<script setup>后,就不再需要

     export default{

         setup(){

             return{

                 ...             

             }         

         }

    }

    而是可以直接快捷的编写

2、示范:

    <script setup>

      const message = "This is message"

      const logMessage = () =>{

        console.log(message);

      }

    </script>

    

    <template>

      <div class="index">

        {{ message }}

      </div>

      <button @click="logMessage">logMessage</button>

    </template>

3、reactive

1、作用

    接受对象类型数据的参数传入,并返回一个响应式的对象

    

2、使用

    2.1、导入

        import { reactive } from 'vue'

    2.2、执行函数

        const state = reactive(对象类型数据)

    //注:只可以接受对象类型

4、ref —— 建议只用这个

1、作用

    接受简单类型或对象类型的数据,并返回一个响应式的对象

    

2、使用

        import { ref } from 'vue'

    2.2、执行函数

        const state = ref(简单或对象类型数据)

    //本质上是在将简单类型包装为复杂类型后,再借助reactive实现的响应式

    2.3、示例

        let kg = ref({

            count:100,

            like:50        

        })

        

3、注

    3.1、在脚本中访问数据,需要通过.value

    3.2、在template中,不需要通过.value

5、computed

 1、作用

    与vue2基本一致,只是修改了写法

    

2、使用

    2.1、导入

        import { computed } from 'vue'

    2.2、执行函数

        const computedState = computed(() => {

            return 计算后的值        

        })

        

3、扩展使用

    //computed默认只读,可以通过get和set语法创建可写的ref

    //但默认情况应该避免修改计算属性的值

    //如:

      const computedList = computed({

      get: () => count.value + 1,

      set: (val) => {

        count.value = val + 1

      }

    })

6、watch

1、作用

    侦听一个或多个数据的变化,数据变化时执行回调函数

    

2、基本使用

        import { watch } from 'vue'

    2.2、执行函数

        watch(count, (newValue,oldValue) => {

            console.log(`count发生了变化,老值为${oldValue},新值为${newValue}`)        

        })

        

3、侦听多个数据

    watch([count,name],([newCount,newName],[oldCount,newCount]) =>{

        console.log('count或者name变化了',[newCount,newName],[oldCount,oldName])    

    })

    

4、配置项

    4.1、immediate

        //在侦听器创建时立即触发一次回调,响应式数据变化后继续执行回调

    4.2、deep

        //进行深度监视,watch默认进行的是 浅层监视,无法监测到复杂类型内部数据的变化

    4.3、精确监听

        //在不开启deep的前提下,对精确的数据进行监听,只有数据变化时才执行回调

        4.3.1、语法

            () => 数据,

            (newValue,oldValue) => 执行事件             

        

三、生命周期API

809709a4416b45e5918acd24558f15f4.png

标签:count,vue,const,setup,Day1,Vue3,message,数据,日记
From: https://blog.csdn.net/Lin_Zhong_/article/details/136775196

相关文章

  • 第一个Vue3程序
     上一个作品是Vue2的代码,这个是Vue3,引入时候不一样<!DOCTYPEhtml><html><head><title>Vue.js示例</title><!--引入Vue.js--><scriptsrc="https://unpkg.com/vue@3/dist/vue.global.js"></script></head>......
  • Vue3-03_组件基础_上
    单页面应用程序什么是单页面应用程序单页面应用程序(英文名:SinglePageApplication)简称SPA,顾名思义,指的是一个Web网站中只有唯一的一个HTML页面,所有的功能与交互都在这唯一的一个页面内完成。单页面应用程序的特点单页面应用程序将所有的功能局限于一个web页面中,仅在......
  • vue3+ts 上传组件
    本来是用的jeecg-vue3中的上传组件,如下图: 功能上还是蛮全的,就是上图中这个链接的代码死活找不到,查了下,是基于antv的a-upload实现的。但是antv中也没找到,上图这个只有移入删除的功能但是我这边的需求是点击链接可以直接在网页预览,而不是下载,移入后有个删除和下载的功能按钮。......
  • vite中配置less,vue3中配置less
    前言如果赶时间请直接使用目录跳到解决问题的部分。使用的项目使用vue脚手架生成。npminitvue@latest版本如下"@vitejs/plugin-vue":"^5.0.4","vue":"^3.4.21"由于近期在学less,心想如果不能将其应用到vue项目中,无异于纸上谈兵。于是立即用vue脚手架......
  • 日记 2024.3.15:2024 年 syzx 春季训练 1
    日记2024.3.15:2024年syzx春季训练1A找出在\(1,2\)周围一圈的点,挑出最远点\(u,v\)(找不到说明\(d_{1,2}=1\)),判一下\(d_{u,v}\)与\(d_{u,2}\)的关系以区分\(\pm1\)。这样比较好看。B普通冒泡\(n(n-1)/2\)次,这题\(n^2\),说明每做一次操作可以浪费一次操作。......
  • HTML-DAY1
    HTML-DAY1HTML语法规范基本语法概述HTML标签是由尖括号包围的关键词,例如<html>。HTML标签通常是成对出现的,例如<html>和</html>,我们称为双标签。标签中的第一个是开始标签,第二个标签是结束标签。有些特殊的标签必须是单个标签(极少情况),例如<br/>,我们称为单标签。标签关......
  • CTF练习日记——[GXYCTF2019]Ping Ping Ping 1
    首先尝试一下分号有没有被过滤:?ip=127.0.0.1;ls;可以看见分号没有被过滤,看到了flag.php和index.php两个文件,先尝试能不能打开flag.php:?ip=127.0.0.1;catflag.php;能看出空格被过滤了,我们用$IFS$1绕过空格:?ip=127.0.0.1;cat$IFS$1flag.php;可以看见flag也被过滤了,我们打开i......
  • vue3+element plus表格实现单选功能
    现有一个需求,表格单选带radio的效果,目前UI库还不支持。只能自行实现:贴下效果图: 用到vue3+elementplus:关键代码:<!--表格--><el-tableref="refsTable"@row-click="clickRow":data="tableData"height="260px"highlight-current-row><el......
  • [vue3 配置] import 图片无法识别的问题
    vue3引入图片,路径没错,但无法识别importdefaultImagefrom'@/assets/column.jpg'Cannotfindmodule'@/assets/column.jpg'oritscorrespondingtypedeclarations.为啥报这个错误?typescript无法识别图片文件,需要在配置中增加声明新建image.d.ts文件/*eslint-disable......
  • Vue3的diff算法
    //https://github.com/vuejs/core/tree/main/packages/runtime-core/src/renderer.ts//https://github.com/vuejs/core/tree/main//packages/runtime-test/src/nodeOps.tsexportfunctiondiff(oldCh,newCh){letoldEndIndex=oldCh.length-1;letnewEndI......