Vue父组件访问子组件属性和方法、父子组件双向绑定(两种方法)

1. 使用vue-cli创建项目

目录结构如下图:

2. 编写代码

src/components/HelloWorld.vue

<template><div class="hello"><h3>{{ msg }}</h3>子组件绑定了vue的属性:<input type="text" v-model="text"> <br />使用子传父,父传子的方式绑定:<input type="text" :value="val" @input="handleVal"></div>
</template><script>
import { mapState } from 'vuex';export default {name: "HelloWorld",// 子组件接收自定义属性值props: {msg: {type: String},val: {type: String}},// 子组件的属性data: function () {return {name: '张三(法外狂徒)',}},methods: {// 子组件的方法say() {return '大哥流啤(歇斯底里+破音)!!!!!!!';},// 触发自定义父组件事件handleVal(e) {this.$emit('input', e.target.value);}},// 子组件接收computed: {...mapState(['text']),}
};
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss">
h3 {margin: 40px 0 0;
}
ul {list-style-type: none;padding: 0;
}
li {display: inline-block;margin: 0 10px;
}
a {color: #42b983;
}
</style>

src/router.index.js

import Vue from "vue";
import VueRouter from "vue-router";
import Home from "../views/Home.vue";Vue.use(VueRouter);const routes = [{path: "/",name: "Home",component: Home,},
];const router = new VueRouter({mode: "history",base: process.env.BASE_URL,routes,
});export default router;

src/store/index.js

import Vue from "vue";
import Vuex from "vuex";Vue.use(Vuex);export default new Vuex.Store({state: {text: "",},mutations: {// 修改storesetText(state, val) {state.text = val;},},actions: {},modules: {},
});

src/views/Home.vue

<template><div class="home"><HelloWorld msg="我是子组件" ref="child" :value="val" @input="handleVal" /><hr /><h3>{{msg}}</h3><button @click="getAttr">父组件访问子组件属性</button><button @click="getMeth">父组件调用子组件方法</button> <br/>父组件绑定了vuex的属性:<input type="text" @input="setText" v-model="text"> <br/>使用子传父,父传子的方式绑定:<input type="text" :value="val"><h1>{{receiveText}}</h1></div>
</template><script>
// @ is an alias to /src
import HelloWorld from "@/components/HelloWorld.vue";export default {name: "Home",data: function () {return {msg: '我是父组件',receiveText:'',text:'',val:''}},methods:{// 父组件访问子组件属性getAttr(){this.receiveText=this.$refs.child.name;},// 父组件调用子组件方法getMeth(){this.receiveText=this.$refs.child.say();},// 父组件修改storesetText(){this.$store.commit('setText',this.text);},handleVal(val){this.val=val;}},components: {HelloWorld,},
};
</script>

3. 演示GIF图

Vue父组件访问子组件属性和方法、父子组件双向绑定(两种方法)相关推荐

  1. vue项目中 img标签加载失败方法,onerror事件的两种方法

    vue项目中 img标签加载失败方法 ?css 第一种方法 第二种方法 本人写的第一篇文章,希望对你有帮助 第一种方法 < img src="123" :οnerrοr=&q ...

  2. AIX更改逻辑卷属性的两种方法(smit和命令行)

    起因:mklv 时忘记指定-t 参数导致TYPE默认为RAW(应该是raw), p550a:/dev#lslv data40_disk LOGICAL VOLUME:     data40_disk ...

  3. vue 父链和子组件索引_vuejs填坑-父子组件之间的访问

    有时候我们需要父组件访问子组件,子组件访问父组件,或者是子组件访问根组件. 1. 父组件访问子组件 $children或$ref $children 返回所有子组件的实例,是一个数组 显示两个组件的信 ...

  4. vue组件通信案例练习(包含:父子组件通信及平行组件通信)

    文章目录 一.案例概述 二.代码 准备工作: 案例1.1:父组件向子组件传值(或者叫:子组件使用父组件属性),采用v-bind方式实现 案例1.2:子组件向父组件传值(或者叫:子组件调用父组件方法), ...

  5. vue父页面调用子页面及方法及传参,鼠标光标定位

    项目场景: vue父页面调用子页面及方法 问题描述 vue中父界面调用子界面及方法时界面可以调用,但是调用方法的时候第一次报错,但是关掉界面再次重新打开就没问题了 原因分析: 在我之前添加鼠标指针定位 ...

  6. 【VUE】vue实现登录滑动拼图验证的两种方法,纯前端组件验证以及前后端同时验证

    vue实现登录滑动拼图验证的两种方法: 第一种是纯前端组件验证,只能区分是人为操作还是机器操作. 第二种是前后端同时验证,这种方法加上后端校验相对会更安全一些.(注:在最底部加上了同时兼容移动端的方法 ...

  7. 19、angular1之pass-word组件、input-select组件 、only-select组件(两种)、on-off组件、layui中的datetime示例、京东购物车、两种作用域绑定、

    19.angular1之pass-word组件.input-select组件 .only-select组件(两种).on-off组件.layui中的datetime示例.京东购物车.两种作用域绑定.两 ...

  8. 组件Refs(操作DOM的2⃣️两种方法)

    组件Refs(操作DOM的2⃣️两种方法) 第一种方式 var mySubmitButton = document.getElementById('submitButton'); console.lo ...

  9. Unity 得到游戏组件的常用的两种方法

    看了一些别人总结的得到组件的方法,很详细,但是初学者会看得眼花缭乱(我就是),这里给出最常用的得到游戏组件的两种方法.这里都以MeshRenderer 组件为例 1.当脚本挂在当前游戏物体,需要得到当 ...

最新文章

  1. GitHub代码一键转VS Code:只需+1s
  2. java中静态变量,静态代码块,静态方法,实例变量,匿名代码块的加载顺序
  3. 《犯罪心理学》读书笔记(part7)--犯罪心理的主观差异(中上)
  4. ios 静态库合成_iOS生成静态库方法-iOS集成静态库-iOS合并静态库
  5. AI有道干货 --- 126 篇 AI 原创文章精选(ML、DL、资源、教程)
  6. BZOJ - 2186 欧拉函数
  7. 任正非称华为 6G 领先世界;支付宝小程序将与微博打通;Linux Kernel 5.3 发布 | 极客头条...
  8. 【软件测评】屏幕标注软件
  9. HDFView的闪退问题
  10. 弱电工程施工组织设计
  11. fedora mysql gui,fedora 14 启用无线网卡 | 勤奋的小青蛙
  12. 软件测试人员必备的7种思维方式
  13. [webpack] Content not from webpack is served from “xxxx“ 并且 http://localhost:8080/ 数据为空解决方案
  14. VTK笔记-裁剪分割-几何裁剪-vtkClipPolyData
  15. CAST和VALIDATE_CONVERSION函数 db官方例子
  16. 【莫烦Python】Python 基础教程——学习笔记
  17. IntelliJ IDEA 注册码(phpstorm等IDE)
  18. python 文本词汇,句子校正 autocorrect库的使用
  19. 开播4小时播放量破亿,《你是我的荣耀》为何能够大受好评?
  20. 设计模式(三):旅行的角度理解抽象工厂模式

热门文章

  1. 吊打面试官系列:你会「递归」么?
  2. 如何开始第一个开源项目?
  3. 人生苦短,不光要用 Python,还要在 VSCode 里用 | 原力计划
  4. Google 向 Android 开发者支付了 800 亿美元,却仍不及苹果!
  5. 作为程序员的我春节还没抢到票却抢到这玩意儿,也是值了!
  6. 刷爆了!BAT这场AI芯片之战,你更支持谁​?
  7. 程序员使用未经批准的软件时会怎么样?
  8. 谁能主宰服务器市场?Linux 之父和 Redis 之父有分歧了
  9. 谁“玩死了”共享单车?
  10. 绝杀《绝地求生》外挂!