IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue中父传子和子传父,传值方法 -> 正文阅读

[JavaScript知识库]vue中父传子和子传父,传值方法

1.关于传值的规则

props值是对象的时候,传递的属性以对象的形式保存在props里面,对象里面的字段可以对传递的属性进行验证或者添加一些匹配验证规则。

? ? <div id="app">
? ? ? ? <com1 :m="msg" :t="txt" :ind="90"></com1>
? ? </div>
<script>
? ? Vue.component("com1",{
? ? ? ? template:`<div>
? ? ? ? ? ? <p>{{m}}</p>
? ? ? ? ? ? <p>{{t}}</p>
? ? ? ? ? ? <p>{{ind}}</p>
? ? ? ? ? ? </div>`,
? ? ? ? ? ? props:{
? // props值是对象的时候,传递的属性以对象的形式保存在props里面
? // 对象里面的字段可以对传递的属性进行验证或者添加一些匹配验证规则
? ? ? ? ?m:{
? ? ? ? ? ? required:true,//要求该属性必须传,不传就报错
? ? ? ? ? ? ? ? },
? ? ? ?  t:{
? ? ? ? ? ? type:Number,//类型是数字
? ? ? ? ? ? default:200 //不传属性时默认为200,等同于函数的默认参数
? ? ? ? ? ? ? ? },
? ? ? ? ?ind:{
? ? ? ? ? ? ?// validator自定义匹配规则
? ? ? ? ? ? ? validator:function(v){
? ? ? ? ? ? ? return v > 20
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? })
? ? var app = new Vue({
? ? ? ? el:"#app"
? ? ? ? ,data:{
? ? ? ? ? ? msg:"你好",
? ? ? ? ? ? txt:10
? ? ? ? }
? ? })
</script>

2.父传子

父传子:通过自定义属性进行传值

1.在父组件使用子组件的时候,给子组件添加自定义属性,属性值为传递的数据

2.在子组件通过props接收父组件的数据,props值是数组,元素是自定义属性

3.使用的时候像data数据一样进行使用

? <div id="app">
? ? ? ? <p>{{msg}}</p>
? ? ? ? <!-- 给组件添加的各种属性会直接作用于组件根节点上,直接与组件根节点的属性(类)进行合并 -->
? ? ? ? <my-com :tt="msg" class="d1"> ? ? 
? ? ? ? </my-com>
? ? </div>
? ? Vue.component("MyCom",{
? ? ? ? template:`<div class="d2">
? ? ? ? ? ? {{age}}
? ? ? ? ? ? {{tt}}
? ? ? ? ? ? </div>`,
? ? ? ? ? ? data(){
? ? ? ? ? ? ? ? return {
? ? ? ? ? ? ? ? ? ? age:10
? ? ? ? ? ? ? ? }
? ? ? ? ? ? },
? ? ?// 接受传递过来的数据,使用的时候可以直接像data一样进行使用
? ? ? ? ? ? props:["tt"]
? ? })
? ? // 根组件
? ? var app = new Vue({
? ? ? ? el: "#app",
? ? ? ? data: {
? ? ? ? ? ? msg:"hello"
? ? ? ? }
? ? })

3.子传父

子传父

?????1 在父组件定义修改方法,需要传递参数的

?????2 在使用子组件的时候通过自定义事件绑定修改方法

?????3 在子组件里面在需要的地方通过this.$emit("事件名","子组件数据")进行触发事件并且把子组件数据传递到父组件中

<div id="app">
? ? ? ? <com @p="changeD1"></com>
? ? ? ? {{d1}}
? ? </div>
<script>
? ? Vue.component("com", {
? ? ? ? template: `<div>
? ? ? ? ? ? <button @click="f1">点击传递数据</button>
? ? ? ? ? ? </div>`,
? ? ? ? data() {
? ? ? ? ? ? return {
? ? ? ? ? ? ? ? msg: {
? ? ? ? ? ? ? ? ? ? txt: "明天出去玩",
? ? ? ? ? ? ? ? ? ? name: "许美女"
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? age: 18
? ? ? ? ? ? }
? ? ? ? },
? ? ? ? methods: {
? ? ? ? ? ? f1() {
? ? ? ? ? ? ? ? this.$emit("p", [this.msg, this.age])
? ? ? ? ? ? }
? ? ? ? },
? ? })
? ? var app = new Vue({
? ? ? ? el: "#app",
? ? ? ? data: {
? ? ? ? ? ? d1: ""
? ? ? ? },
? ? ? ? methods: {
? ? ? ? ? ? changeD1(e) {
? ? ? ? ? ? ? ? this.d1 = e[0].name
? ? ? ? ? ? ? ? console.log(this.d1);
? ? ? ? ? ? }
? ? ? ? },
? ? })
</script>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:09:45  更:2021-12-06 15:11:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:01:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码