vue3学习(二)

前言

       上一篇分享了vue的基础指令,这篇记录下vue3的核心内容,也是自己的学习笔记,可能有些核心还不全,大佬请略过。


一、核心内容

       分享这个之前,先声明下,我这里是用的脚手架的写法,分享的讲解截图是vue3js暴露的写法,刚好可以对比理解,我也是这样的,学习的是暴露的写法,自己code的示例是脚手架的写法,与大家共同进步。
先上我自己code的示例代码:(还是接着之前webstrom创建的项目code)
App.vue

<template>
  <HelloWorld v-bind:msg="msg"/>

  <!-- v-model更多用法 -->
  <input type="text" v-model.number.lazy="inNum">

  <!-- 计算属性 -->
  <p ref="msgTitle">msg:{{ msg }}</p>

  <p>reversedMsg:{{ reversedMsg }}</p>

  <p>doubleNum:{{ doubleNum }}</p>

  <!-- watch监听 -->
  <ul>
    <li>name:{{ user.name }}</li>
    <li>age:{{ user.age }}</li>
    <li>school{{ user.school }}</li>
  </ul>
  <input type="text" @change="changeUserName($event.target.value)" v-model="user.name">

  <!-- 当前实例属性 -->
  <p>
    <span ref="aaa">aaa ref</span>
  </p>

  <button @click="changeMsg()">修改你好</button>

</template>

<script setup>
import {ref, computed, watch, getCurrentInstance, nextTick} from 'vue'
import HelloWorld from './components/HelloWorld.vue'

// ref创建响应式数据
const msg = ref('Welcome to Your Vue.js App')
const inNum = ref(0)

const user = ref({
  name: ref('John'),
  age: ref(25),
  school: ref('MIT')
})

// methods
function changeUserName(newName) {
  user.value.name = newName;
}
function changeMsg(){
  console.log("---修改msg---");
  this.msg = "你好";
  //直接proxy.$refs.msgTitle可能慧出现页面还没有渲染完的情况
  //console.log("----",proxy.$refs.msgTitle)

  //使用nextTick,迭代页面渲染完,再取里面的内容
  proxy.$nextTick(function (){
    console.log("--msgRefHtml",proxy.$refs.msgTitle)
  })
}

// computed
const reversedMsg = computed(() => {
  return msg.value.toUpperCase().split(" ").reverse().join(" ");
})

const doubleNum = computed(() => {
  return inNum.value * 2;
})

// watch
watch(inNum.value, (newVal, oldVal) => {
  console.log('newVal:', newVal, 'oldVal:', oldVal);
})

watch(user.value, (newUser) => {
  console.log('new name:', newUser.name);
}, {deep: true, immediate: true})

//vue3.2.0新增getCurrentInstance,获取当前实例
const dint = getCurrentInstance();
console.log(dint)

//这种方式只能在开发环境下使用,生产环境下的ctx将访问不到
const {ctx} = getCurrentInstance();
console.log(ctx.$refs)

//此方法在开发环境以及生产环境下都能放到组件上下文对象(推荐)
const {proxy} = getCurrentInstance();
console.log(proxy.$refs)

//nextTick
nextTick(() =>{
  //var msgTitleRef = proxy.$refs.msgTitle;
  var msgRefHtml = proxy.$refs.msgTitle;
  console.log("--msgRefHtml",msgRefHtml)
})


</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

计算属性

在这里插入图片描述

监视器

在这里插入图片描述

实例方法

在这里插入图片描述

模版

在这里插入图片描述

生命周期

在这里插入图片描述
注意:
beforeCreate并不是字面意思上的在创建前,具体还是看下vue官网给出的生命周期的解释图:

在这里插入图片描述

二、脚手架写法注意

       code的示例代码,大家有没有注意看<script后面跟了一个setup,这个实际就是与生命周期的steup(组合式API)对应的。


总结

  • vuejs暴露的写法基本会html,js就可以上手干了
  • 脚手架写法才是新阶段的开始
           就是笔记备忘,希望跟大家一起进步,uping!

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

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

相关文章

【放球问题】920. 播放列表的数量

本文涉及知识点 【组合数学 隔板法 容斥原理】放球问题 本题同解 【动态规划】【组合数学】【C算法】920播放列表的数量 LeetCode 920. 播放列表的数量 你的音乐播放器里有 n 首不同的歌&#xff0c;在旅途中&#xff0c;你计划听 goal 首歌&#xff08;不一定不同&#x…

[ C++ ] 类和对象( 下 )

初始化列表 初始化列表&#xff1a;以一个冒号开始&#xff0c;接着是一个以逗号分隔的数据成员列表&#xff0c;每个"成员变量"后面跟 一个放在括号中的初始值或表达式。 class Date { public: Date(int year, int month, int day): _year(year), _month(month), _d…

Next-Admin,一款基于Nextjs开发的开箱即用的中后台管理系统(全剧终)

hello&#xff0c;大家好&#xff0c;我是徐小夕。之前和大家分享了很多可视化&#xff0c;零代码和前端工程化的最佳实践&#xff0c;今天继续分享一下最近开源的 Next-Admin 项目的最新更新。 这次更新是1.0版本最后一次更新&#xff0c;也根据用户反馈的问题做了一些优化&am…

展望跨境智慧银行在全球化金融服务中的发展趋势和机遇

一、引言 随着全球经济的不断融合和金融科技的迅猛发展,跨境智慧银行作为连接不同国家和地区金融市场的桥梁,正逐渐展现出其独特的魅力和潜力。跨境支付与结算作为跨境智慧银行的核心业务之一,随着全球化的深入发展和国际贸易的日益频繁,其业务场景也愈发丰富和复杂。本文…

从了解到掌握 Spark 计算框架(一)Spark 简介与基础概念

文章目录 什么是 Spark&#xff1f;核心特点 Spark 对比 MapReduceSpark 编程模型RDDDataFrameDataset Spark 运行模式Spark 生态 什么是 Spark&#xff1f; Spark 是一个基于内存的分布式计算框架&#xff0c;最初由加州大学伯克利分校的 AMPLab 开发&#xff0c;后来捐赠给了…

【代码随想录】【算法训练营】【第21天】 [530]二叉搜索树的最小绝对差 [501]二叉搜索树的众数 [236]二叉树的最近公共祖先

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 21&#xff0c;天气不错的周二~ 题目详情 [530] 二叉搜索树的最小绝对差 题目描述 530 二叉搜索树的最小绝对差 解题思路 前提&#xff1a;二叉搜索树 思路&#xff1a;根据二叉搜索树的中…

李廉洋:5.29黄金早盘2365-2345区间,今日行情走势分析及策略。

黄金消息面分析&#xff1a;当前美国存在一个令人担忧且未被充分关注的问题&#xff1a;房地产行业低迷、高利率和抵押贷款利率、租金高涨以及美联储的紧缩政策构成了一个恶性循环。由于高房价和高抵押贷款利率&#xff0c;美国住房经济活动远低于两年前的水平。为了让该行业好…

Post Microsoft Build and AI Day 上海开发者日

点击蓝字 关注我们 编辑&#xff1a;Alan Wang 排版&#xff1a;Rani Sun 这个六一怎么过&#xff1f;来微软 Reactor&#xff0c;一起过儿童节吧&#xff01; 6月1日&#xff0c;Microsoft Azure & Microsoft Reactor 面向大小朋友特别推出六一特辑&#xff0c;「Post Mic…

【原创】java+springboot+mysql日程管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

Mac | Mac 移动硬盘无法分区问题

现象问题 电脑配置&#xff1a;MacBook Pro M1&#xff0c;系统 Sonoma Mac 系统新升级了 Sonoma&#xff0c;结果出现各种问题。外接屏幕居然不能旋转 90 &#xff0c;查了一下是Sonoma系统导致的&#xff0c;以及莫名发热的问题。想着要么回退一下系统算了&#xff0c;于是网…

基于tensorflow的咖啡豆识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、前期工作 1. 设置GPU import tensorflow as tfgpus tf.config.list_physical_devices("GPU")if gpus:tf.config.experimental.set_memory_gr…

Redhat9 LAMP安全配置方案及测试

目录 数据库主机 安装Mariadb数据库服务 设置mariadb开机自动启动 Php主机 部署Apache服务器 设置apache服务开机自启 安装php 安装 phpMyAdmin 打开测试机 更新软件包列表&#xff1a; 首先&#xff0c;确保你的软件包列表是最新的。打开终端并输入以下命令&#xf…

电脑如何远程访问?

【天联】的使用场景 电脑远程访问在现代科技的发展中扮演了重要的角色。对于企业和个人用户来说&#xff0c;远程访问的便利性提供了许多机会和可能性。作为一种高效的工具&#xff0c;【天联】具有广泛的应用场景&#xff0c;可以实现异地统一管理、协同办公以及远程数据采集…

咖啡看书休闲时光404错误页面源码

源码介绍 咖啡看书休闲时光404错误页面源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 源码效果 源码下载 咖啡看书…

WEB安全:Content Security Policy (CSP) 详解

Content Security Policy (CSP) 是一种强大的网页安全机制,用于防止跨站脚本 (XSS) 和其他注入攻击。通过设置一系列的内容安全策略,CSP 可以限制网页可以加载的资源,从而保护用户数据和网站的安全性。 什么是 XSS 攻击? 跨站脚本攻击 (XSS) 是一种常见的安全漏洞,攻击者…

2024年JAVA、C++、Pyhton学哪种语言更容易进国央企?

对于不同编程语言在进入国有企业的观点大体是正确的&#xff0c;不过在实际选择时还需考虑一些因素。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私信…

“2024南京智博会”共同探索智能科技产业创新发展新路径

随着全球数字化浪潮的深入推进&#xff0c;智慧城市、物联网与大数据等领域的发展成为推动经济社会发展的重要力量。在这样的背景下&#xff0c;2024南京国际智慧城市、物联网、大数据博览会&#xff08;南京智博会&#xff09;的举办&#xff0c;无疑为国内外企业提供了一个绝…

如何成为一名合格的JAVA程序员?

如何成为一名称职的Java编程人员&#xff1f;你一定不能错过的两本书。 第一本《Java核心技术速学版&#xff08;第3版&#xff09;》&#xff01; 1.经典Java作品《Java核心技术》的速学版本&#xff0c;降低学习门槛&#xff0c;帮助读者更容易学习Java&#xff0c;更快地把…

基于ssm的微信小程序的居民健康监测系统

采用技术 基于ssm的微信小程序的居民健康监测系统的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringMVCMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 后端页面 用户信息管理 健康科普管理 公告管理 论坛…

C++线程任务队列模型

功能描述 实现一个任务队列&#xff0c;用于任务的执行 任务队列 任务队列可以添加、删除任务&#xff0c;实现对任务的管理添加任务后&#xff0c;任务队列可以开始执行任务队列执行任务方式为串行执行 任务 任务执行需要持续一段10s内随机的时间&#xff0c;执行过程通过…