当前位置: 首页 > news >正文

Vue3_基础使用_1

这节主要介绍:  vue2与vue3的区别,创建响应式的数据,setup语法糖的使用,watch监听,及vue3创建项目。

vue2的选项式与vue3的组合式区别:

选项式:vue2中数据与方法计算属性等等,针对一个数据的处理在不同的配置中,当业务复杂时很难维护,修改起来也不好查找。

vue3的组合式:将针对数据的方法计算属性等等放在一起管理,利于管理,方便查找。

0.创建项目,到文件夹cmd 输入:  npm create vue@latest

    然后输入一个项目名称,然后除了TypeScript为YES其他都选NO到最后会生成一个项目。

代码:

1.在其中定义:变量,数组,对象,方法    html中就能直接{{}}使用

<script  lang="ts" setup>
......
</script>

2.引用说明

ref:添加响应式的   简单变量  和   对象,使用需要加 .value  可以借助插件自动补全.value

reactive:只是给对象添加响应式,使用不用加.value

watch:引入监听

watchEffect:引入更高级的监听,不需要告诉他监视什么,他自己根据你的代码去识别。

import {ref,reactive,watch,watchEffect} from 'vue'

3.使用ref创建一个可以使用的简单的变量。

//html 中直接{{user}}
<script  lang="ts" setup>
   //引入
   import {ref,reactive} from 'vue'
   let user=ref("php");
   let pwd=ref("123456");
</script>

留意lang="ts" setup

4.使用reactive创建一个可以使用的简单的对象。

//html中{{msg.id}}
<script  lang="ts" setup>
   //进入
   import {ref,reactive} from 'vue'
   let msg=reactive({id:1,StationName:"珠海北"});
</script>

5.当中可以创建计算属性,方法,监视等等

<script  lang="ts" setup>
    //引入方法
    import {ref,reactive,watch,watchEffect} from 'vue'
    //声明响应式数据
    let info=ref({name:"evan.pei",age:30,skill:["vue","c#"]});
    //方法
    function updateAge(){
       info.value.age++;
     }
    //watch,对象属性监听用方法()=>...
    watch(()=>info.value.age,(n)=>{console.log("age变成了",n)});

     //watchEffect进行监听,他会自动去代码块中识别哪些要监听
    watchEffect(()=>{
      if(info.value.age>=35)
          info.value.name="EvanPei";
    });
</script>

6.计算属性

//计算属性
import {computed} from 'vue'
let name=computed(()=>{return name+"~";})
//toRefs:结构化赋值后可以直接用 let{name,age}=toRefs(person)将大括号中的变量转为ref的。

7.停止监视     接收wacth用于停止,deep:true深度监视对象里面全部都监视

//监视 watch
import {watch,watchEffect} from 'vue'
const stopWatch=watch(sum,(newV,oldV)=>{ 
    ...逻辑
	if(newV>=10)
		stopWatch();//停止监视
},
{deep:true,//深度监视 
 immediate:true//立即监视
})

8.其他

//因为reactive不能直接替换整个对象,需要借助Object.assign
//这个相当于把对象的每个值赋值一遍而不是直接替换对象
Object.assign(person,{...});
//监视对象中的某一个属性,或者是对象(如需深度监视加deep:true)
watch(()=>{return person.name},(n,o)=>{...})
//同时监视多个
watch([()=>person.name,()=>person.car.c1],()=>{...})
//watchEffect监视,不需要指定监视谁它自己根据你写的逻辑去分析
watchEffect(()=>{...})//直接写逻辑

9.插件:可以设置name,自动加.value

相关文章:

  • 获取ping值最小IP
  • MIT6.5830 实验0
  • Servlet(未完结~)
  • 瑞芯微1808模型转换(onnx到rknn)环境配置过程
  • 【Linux】Linux基本指令
  • 雨云游戏云VPS服务器用Linux搭建MCSM面板和Minecraft Mohist 1.20.2服务器教程,我的世界MOD和插件服开服教程。
  • 爬虫笔记(三):实战qq登录
  • CSS Day11- 动画
  • 【唐山海德教育】安全员(岗位职责)
  • 为什么 FPGA 比 CPU 和 GPU 快?
  • 机器学习入门-----sklearn
  • 链表的删除和预处理
  • vue/js 调用系统打印功能进行图片(imgUrl,base64),表格,自定义内容,页面局部区域打印【print-js、html2canvas】
  • MavenGradle等引入jSerialComm
  • xss 盲打使用
  • 实现vue3响应式系统核心-shallowReactive
  • 【国产MCU】-CH32V307-通用DMA控制器及使用
  • 云微呼AI外呼:数字时代营销的智能引擎
  • 【30秒看懂大数据】变量
  • 8、应急响应-战前溯源反制主机蜜罐系统HFishHIDSElkeidWazuh
  • 【社论】职业上新,勇于“尝新”
  • 晶圆销量上升,中芯国际一季度营收增长近三成,净利增超1.6倍
  • 这个接班巴菲特的男人,说不出一个打动人心的故事
  • 金价大反攻,国内金饰价格涨回千元,能否重返巅峰?
  • 美国警方:爱达荷州交通事故致7人死亡,8名伤者预计无生命危险
  • 新华社评论员:在推进中国式现代化的宽广舞台上绽放青春光彩