父组件中创建下拉框
template中的代码
<template><el-option v-for="item in options":label="item.text":key="item.value":value="item.text"></el-option></el-select></template>`
script中的代码
data(){return{ms_language:"中文", //默认值options:[{value:1,text:"中文"},{value:2,text:"EN"},],} }// 用于子节点调用,来获取该组件中的ms_languagemethods: {getms() {return this.ms_language} }
子组件中获取获取父组件方法
//直接在需要的地方用$parent调用父组件中的方法获取下拉框中的值。// **$parent的个数**根据层数决定,两个就可以获取爷爷组件中的属性了// 在data()中获取data() {Language : this.$parent.$parent.getms(),}//在方法中使用methods: {getms(){Language : this.$parent.$parent.getms(),}}
通过方法调用的方式获取父组件中的值的好处就是子组件每次用的时候与父组件中的值保持一致,逻辑比较简单。
另外看到其他回答中提到的用watch监听或者与compute组合的方式动态获取父组件中的值,我这里尝试了下总是监听不到,只能获取到默认值,不会跟着父组件的变化的来获取