vue3学习(三)

前言

        继续接上一篇笔记,继续学习的vue的组件化知识,可能需要分2个小节记录。前端大佬请忽略,也可以留下大家的鼓励,感恩!


一、理解组件化

在这里插入图片描述
在这里插入图片描述

二、组件化知识

1、先上知识点:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、示例代码

App.vue (主页面)

<template><HelloWorld v-bind:msg="msg" @getChildMsg="getChildMsg" :user="user" @getSonInfo="getSonInfo"/><hr/><h1>我是App父组建</h1><label>主页面输入框:</label><input type="text" @keyup="changeMsg($event.target.value)"/><h1>子传父显示:{{ childMsg }}</h1><h1>子传对象到父</h1><ul><li>son name:{{ sonData.name }}</li><li>son age:{{ sonData.age }}</li><li>son school:{{ sonData.school }}</li></ul></template><script setup>
import {ref} from 'vue'
import HelloWorld from './components/HelloWorld.vue'// ref创建响应式数据
const msg = ref('Welcome to Your Vue.js App')function changeMsg(value) {console.log("输入msg:", value);msg.value = value
}//父传子,对象
const user = {name:"tom",age:18,school:"MIT"
}//定义子传父属性
const childMsg = ref('子传值父');
//定义方法
const getChildMsg = (ms) =>{console.log('getChildMsg',ms);childMsg.value = ms;
}const sonData = {name: '',age: null,school: ''
}
const getSonInfo = (sonInfo) =>{console.log("App son:",sonInfo)sonData.name = sonInfo.name;sonData.age = sonInfo.age;sonData.school = sonInfo.school;
}</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>

HelloWorld.vue(全局组件)

<template><div class="hello"><h1>我是HelloWorld子组建</h1><h1>主页面输入传值:{{ msg }}</h1><h1>主页面传对象到子</h1><ul><li>name:{{ user.name }}</li><li>age:{{ user.age }}</li><li>school:{{ user.school }}</li></ul><h1>组建内输入:{{ compMsg }}</h1>
<!--    <input type="text" readonly v-model="compMsg">--><label>组建内输入框:</label><input type="text" @keyup="keyUpChange($event.target.value)"></div>
</template>
<!--
普通写法
<script>
export default {name: 'HelloWorld',props: {msg: String}
}
</script>--><!-- script setup写法 -->
<script setup>
import {defineProps, ref, defineEmits} from 'vue';//组建传参数,defineProps:父传子,defineEmits子传父
const props = defineProps({msg: String,user: {type: Object}
});
console.log(props);let childMsg = ref("子传父msg");
console.log(childMsg);//思考一下,为什么组建内输入框的值不会立马渲染到页面上?答案:其实是ref定义,下面又没有用.value = 接收
//let compMsg = ref('组建内输入msg');
const compMsg = ref('组建内输入msg');function keyUpChange(value) {console.log("组建内容输入msg:", value);compMsg.value = value;changeChildMsg();//触发发送对象到父sendChildUser();
}//定义发送给父组建的方法
const emits = defineEmits(['getChildMsg','getSonInfo']);//定义方法
function changeChildMsg() {emits('getChildMsg', compMsg.value);
}/* 这种是变量声明方式定义函数,涉及到vue的生命周期
const changeChildMsg = () =>{emits('getChildMsg',compMsg);
}
*///子传对象到父
const childUser = {name:'son',age:3,school: '幼儿园'
}
function sendChildUser(){console.log("son:",childUser)emits('getSonInfo',childUser);
}</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {margin: 40px 0 0;
}ul {list-style-type: none;padding: 0;
}li {display: inline-block;margin: 0 10px;
}a {color: #42b983;
}
</style>

3、效果

初始
在这里插入图片描述
输入内容效果
在这里插入图片描述
        知识点都是vuejs暴露的写法,这里code的是组合是API写法,大家用力理解下。


总结

  • 官网内容更详细,还是很有必要看的
  • 这里记录的笔记深度还不够,先入门吧,后面主要是会看官方文档
            就记录到这里,跟大家一起进步,uping!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

认识 DECIMAL 类型

文章目录 1.作用2.实现原理参考文献 1.作用 为保证小数精度不丢失&#xff0c;数据库表使用 DECIMAL 类型&#xff0c;服务代码中使用&#xff0c;比如 Golang 第三方库 https://github.com/shopspring/decimal。接口协议可以使用 string 表示。 从 DB 存储&#xff0c;服务数…

力扣:541. 反转字符串 II

541. 反转字符串 II 给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个&#xff0…

数据恢复:手机数据恢复,盘点7个有效手机恢复方法

你知道吗&#xff0c;超过 70% 的智能手机用户都曾有过数据丢失的经历&#xff1f;如果你曾经丢失过手机中的重要文件&#xff0c;别担心&#xff0c;本文有解决办法。在本文中&#xff0c;我们将告诉你如何使用简单的步骤恢复手机中丢失的数据。无论你是不小心删除了文件还是手…

go使用letteravatar生成圆形透明头像图标

官网地址&#xff1a;GitHub - disintegration/letteravatar: Letter avatar generation for Go 我对其中函数改了一下&#xff0c;支持多个字符&#xff0c;效果如下&#xff1a; func TestCreateAvatar(t *testing.T) {GenerateAvatar("Bird Fish", 0, "Bird…

哈工大机器人竞技队成立22年来4次获国际冠军

另获得中国冠/亚/季军13次、国家级科技奖励60余次、省级科技竞赛奖励50余次、多次获得“最佳技术奖”。早在2009年就力克群雄获得唯一一张亚太大学生机器人大赛的入场卷&#xff0c;代表中国在东京5场全胜获得冠军。 2013届队员王永锟填报高考志愿时&#xff0c;恰巧看到哈工大…

Mac m1安装AWVS

目录 原因 安装 下载镜像 进入终端 启动AWVS 登陆 原因 由于 m1 为 arm 芯片,兼容性问题无法独立安装x86的AWVS,所以使用docker安装较为方便使用。

字符串补位

字符串补位 StringUtilsStrUtilString.format() StringUtils 字符串长度小于设定长度&#xff0c;则会补零&#xff0c;直至达到设定长度字符串长度等于或大于设定长度&#xff0c;则不进行任何操作&#xff0c;保持原字符串不变 import org.apache.commons.lang3.StringUtil…

JavaScript 全屏方案(分享)

文章目录 基本实现特殊情况 基本实现 基本情况是属于只是鼠标点击全屏按钮 document.exitFullscreen()&#xff0c;退出全屏Document.requestFullscreen()&#xff0c;开启全屏document.fullscreenElement&#xff0c;返回当前全屏元素 <template><div><el-b…

stm32 FLYMCU串口刷机:程序文件不是0x8000000和0x20000000区域的”解决办法。

你想使用串口刷机&#xff0c;用FLYMCU &#xff0c; 刷入的bin 文件是不带地址的&#xff0c;得刷入HEX文件 才可以&#xff0c;因为程序并不知道是从0x8000000开始的&#xff0c; 如果必须得刷入bin 那就得用stm32Cube programmer 这个软件 也可以使用ST-LINK&#xff08;S…

Word如何绘制三线表及设置磅值

插入表格&#xff0c; 开始 边框 边框和低温 设置磅值 先全部设置为无边框 上边 1.5 0.5 以上内容未完善&#xff0c;请等待作者更新

【前端面经】JS 中 var、let、const 变量声明方式及其区别?

JS 中三种变量声明方式及其区别 三种变量声明方式及其区别var、let、const 的对比变量的提升 三种变量声明方式及其区别 var、let、const 的对比 特性varletconst函数作用域√&#xff08;变量在函数中声明时&#xff09;not onlynot only全局作用域√&#xff08;变量在函数…

qmt量化交易策略小白学习笔记第7期【qmt策略之股票快照指标】

qmt策略之股票快照指标 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 感谢关注&#xff0c;需免费开通量化回测与咨询实盘权限&#xff0c;可以和博主联系&#xff01; 股票快照指标 提供标…

窄通道、非液压、超续航、更安全,地牛AGV小车诠释高效物流!

agv 在智能时代&#xff0c;替代简单、机械、重复以及重体力工作的智能机器设备成为未来发展的趋势。这种趋势不仅可以提高工作效率和质量&#xff0c;还可以解放人力资源&#xff0c;使其更好地应用于创造性和高级智能任务上。 这不&#xff0c;现在有越来越多的工厂开始使用…

移动云服务器选购指南(图文教程详解)

目录 一、前言 二、基本概念 2.1 定义 2.2 部署形式 2.3 用处 三、主流平台 四、主流产品推荐 4.1 云电脑 4.2 云主机ECS 4.3 弹性公网 IP 五、选购指南 5.1 明确场景 5.2 明确需求 5.3 明确身份 新用户 老用户 5.4 明确时间 5.5 明确教程 六、总结 一、前言…

react 保持组件纯粹

部分 JavaScript 函数是 纯粹 的&#xff0c;这类函数通常被称为纯函数。纯函数仅执行计算操作&#xff0c;不做其他操作。你可以通过将组件按纯函数严格编写&#xff0c;以避免一些随着代码库的增长而出现的、令人困扰的 bug 以及不可预测的行为。但为了获得这些好处&#xff…

WMS仓库管理系统是怎么操作的?WMS操作流程详解

WMS 是仓库管理系统(Warehouse Management System) 的缩写。通过标准化的来料管理、拣配管理、仓库管理&#xff0c;打造实时化、透明化、可视化的仓储管理体系。一款合格的wms系统具有以下优势 提供实时可视性和自动化仓储流程&#xff0c;帮助企业更好地应对复杂的供应链网络…

Java多线程基础知识(超详细)

Java多线程基础知识 什么是多线程 在Java中&#xff0c;多线程&#xff08;Multithreading&#xff09;是并发编程的一种形式&#xff0c;它允许在一个程序中同时运行多个线程。每个线程都是程序的一个独立执行流&#xff0c;拥有自己的堆栈和程序计数器&#xff0c;但共享程…

【MySQL精通之路】安全(2)-密码安全

密码出现在MySQL中的多个上下文中。 以下部分提供了一些指导原则&#xff0c;使最终用户和管理员能够确保这些密码的安全并避免暴露这些密码。 此外&#xff0c;validate_password插件可用于强制执行可接受密码的策略。 请参阅“密码验证组件”。 1.密码安全的最终用户指南 …

打造高质感的电子画册,这篇文章告诉你

​在数字化时代&#xff0c;电子画册作为一种全新的视觉传达方式&#xff0c;正逐渐成为各行各业展示形象、传播信息的重要工具。相较于传统的纸质画册&#xff0c;电子画册具有更高的质感、更好的互动性以及更低的制作成本&#xff0c;使得它愈发受到众多企业的青睐。那样怎么…

整理好了!2024年最常见 20 道 Rocket MQ面试题(一)

一、RocketMQ是什么&#xff1f; RocketMQ是一个开源的分布式消息中间件&#xff0c;它最初由阿里巴巴集团开发&#xff0c;并在2012年开源。后来&#xff0c;RocketMQ被捐赠给了Apache软件基金会&#xff0c;并在2017年成为了Apache的顶级项目。以下是RocketMQ的几个关键特点…