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,一经查实,立即删除!

相关文章

数据恢复:手机数据恢复,盘点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…

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;请等待作者更新

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;帮助企业更好地应对复杂的供应链网络…

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

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

linux学习(六)

1.网络管理 (1)查看 ifconfig: root用户可以查看网卡状态, 普通用户: /sbin/ifconfig(需要加上命令的完整路径) (2)修改网络配置 通过命令修改网络配置 设置网卡的ip地址;禁用网卡和启用网卡了。 添加网关: (3)网络故障查询 ①ping 检测当前主机和目标主机是…

杨若歆发布最新单曲《迷雾之谜》从啦啦女神到音乐新星的华丽转身

5月28日&#xff0c;台北——杨若歆&#xff0c;这位被粉丝封为"啦啦女神"的多才多艺艺人&#xff0c;近日推出了她的最新单曲《迷雾之谜》&#xff0c;这首歌曲以其空灵的旋律和杨若歆独特的高音&#xff0c;迅速在歌迷中引起了热烈的反响。 杨若歆&#xff0c;身高…

nginx 安全配置

1、前言 前后端分离后&#xff0c;nginx 作为跨域转发工具在日常应用中越来越广泛&#xff0c;它的安全性不能不能忽略。 2、nginx 安装相关说明 2.1 直接下载安装包 在nginx官网下载编译好的安装包&#xff0c;链接地址为nginx: download。如果是linux系统&#xff0c;直接使…

720VR三维立体小程序源码系统 手机电脑端自适应 前后端分离 带完整的安装代码包以及搭建教程

系统概述 720VR 三维立体小程序源码系统是基于先进的技术和理念打造而成的综合性平台。它融合了虚拟现实技术、移动互联网技术以及计算机编程技术&#xff0c;旨在为用户提供沉浸式的 720 度全景体验。 该系统的设计充分考虑了用户的需求&#xff0c;无论是在手机端还是电脑端…

vue-cli2项目中使用scss

前言&#xff1a; 首先要搞清楚Sass和Scss的区别&#xff1a; 实际上Sass和Scss是同一种东西&#xff0c;Scss是 Sass3 引入新的语法&#xff0c;它们都是css预处理器。通常称为Sass&#xff0c;但存在两种不同的语法风格&#xff1a; 文件扩展名&#xff1a;Sass 默认…

探索Python的包与模块:构建项目的基石

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、模块与包的基础认知 1. 模块的定义与创建 2. 包的组织与管理 二、模块与包的进阶使用…

懒人创业秘诀揭秘:加入萤瓴优选项目,普通人也能打开财富大门

创业对于很多人来说&#xff0c;是一个艰难而复杂的过程。然而&#xff0c;时代的发展带来了新的机遇&#xff0c;懒人创业成为了一种趋势。加入萤瓴优选项目&#xff0c;普通人也能轻松打开财富大门。本文将揭秘懒人创业的秘诀&#xff0c;并分析萤瓴优选项目如何帮助普通人实…

极致产品力|从toB到toC,年销4.2亿份的冻干品牌是如何炼成的?

天野食品是日本冻干食品长红40年的品牌&#xff0c;从制造焦糖的小工厂&#xff0c;转变为日本冻干速食的行业第一&#xff0c;它是如何做到的呢? 深耕TOB业务&#xff0c;如何在ToC业务创造增长 天野公司以冻干食品闻名但并非以此起家。自1940年成立以来&#xff0c;便以染料…

tomcat不定时宕机,Failed to write core dump

在linux上的tomcat部署的web应用&#xff0c;不定时会自动挂掉&#xff0c;排查tomcat安装路径/logs/catalina.out 发现提示Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java a…

前端本地项目启动供后端或者测试调试

目录 1、项目本地启动的地址 2、打开终端输入 ifconfig 查找ip 3、将localhost替换成ip即可供他人测试 1、项目本地启动的地址 http://localhost:8100/?module220&webRoutevpc-gray&backRoutevpc-gray........................... 2、打开终端输入 ifconfig 查找i…