项目实战——emos在线办公系统:组件之间的相互使用

75 阅读2分钟

哈喽哈喽,这里是小菜不拖延博主

春日打卡day4~

组件方法之间的调用

父组件调用子组件

1、在父组件中:首先要引入子组件 import Child from './child';

  2、 是在父组件中为子组件添加一个占位,ref="mychild"是子组件在父组件中的名字

  3、父组件中 components: {  是声明子组件在父组件中的名字

4、在父组件的方法中调用子组件的方法,很重要 this.$refs.mychild.parentHandleclick("嘿嘿嘿");

子组件调用父组件

this.$parent.event

第二种方法是在子组件里用$emit向父组件触发一个事件,父组件监听这个事件就行了。

子组件向父组件传值

this.$emit("function",param)

比如,这里子组件当中:

image.png 父组件中:

image.png 然后触发父组件当中的loadDataList

(这里loadDataList的作用就是保存数据,所以我们调用它,就可以实时更新页面)

image.png

请假页面、添加请假组件之间的关系梳理

leave.vue当中数据理解 

每个页面其实相当于一个表格,那么我们可以通过插槽,获取当前行的数据

image.png 这样,我们就可以拿到后端返回给我们的数据。以此,我们就可以把这些数据返回给后端 

比如,我们可以打印scope.row我们就可以发现,他们里面返回给我们很多值,比如我们想拿到id,那我们就可以直接,scope.row.id.

image.png

deList

image.png

image.png

image.png

就是说,下拉列表显示了depList里面的数据,我们在data里面声明了depList,这个depList的值是从哪里来的呢?就是从图三这个函数来的,他发送了一个get请求,然后得到了一个resp的返回值,在这里将deptList的值赋为返回值里面我们需要的那一个部分

那么这个函数是怎么触发的呢?他是在created里面,也就是说生命周期最开加载,当这个页面渲染出来,那么他就执行了这个函数了

image.png

model和v-model

简单来说就是model是单向数据传递,只是将父组件的数据传递到子组件

v-model一般用于表单,v-model="dataform",实现双向数据绑定

组件之间的相互使用

标签名字对应我们导入的名字,这里小注意点就是,标签是不区分大小写的,所以字母一样就好