当前位置: 首页 > news >正文

阿里logo设计平台最新seo视频教程

阿里logo设计平台,最新seo视频教程,wordpress没了,营销型网站建设制作说明 我上一篇文章中基本对vue所有的数据通信方法进行了一个整理归纳。 其实我并没有像传统的那样去罗列,比如父传子有props,ref,子传父为emit,兄弟用$bus等等。 因为在我的实际练习和业务开发中,props,emit,ref等可以实现父子数据互传,这里就涉及一个比较重要的编程思维,函…

说明

我上一篇文章中基本对vue所有的数据通信方法进行了一个整理归纳。

其实我并没有像传统的那样去罗列,比如父传子有props,ref,子传父为emit,兄弟用$bus等等。

因为在我的实际练习和业务开发中,props,emit,ref等可以实现父子数据互传,这里就涉及一个比较重要的编程思维,函数式编程。

当我们使用props传递一个函数呢,那么子组件调用这个函数时,将参数传入这个函数的调用,那么在父组件中定义的函数不就可以直接获取到了子组件中数据了吗。

其余的两个也是同理,记住,传参有两种,一种是常规变量,一种是函数,传递什么决定了你的功能。

看代码:

props实现父子双向传参:

父组件

<template><div><p>父组件数字值1:{{ numValue1 }} <el-button @click="addNum">增加</el-button></p><p>获取子组件的值:{{ numValue2 }}</el-button></p><hr /><PropsChild :numValue1="numValue1" :numValue2="getChildValue"></PropsChild></div>
</template>
<script>
import PropsChild from './child.vue'
export default {name: 'propsTest',components: {PropsChild},data() {return {numValue1: 0,numValue2: '父组件默认的值'}},methods: {addNum() {this.numValue1++},getChildValue(childValue) {console.log(childValue, '???子组件的数值')this.numValue2 = childValue},getChildValueFun() {}}
}
</script>
<style lang="less"></style>

子组件

<template><div><p>子组件数值:{{ numValue1 }}</p><el-input v-model="value" @input="numValue2" class="inputBox"></el-input></div>
</template>
<script>
export default {name: 'propsChild',props: {numValue1: {type: Number,require: true,default: 0},numValue2:{type:Function,default:()=>{}}},data(){return{value:'子组件本身的值'}}}
</script>
<style lang="less">
.inputBox{width:300px;margin-top:16px;
}
</style>

$emit实现父子双向传参

父组件

<template><div>父组件<el-input v-model="value" @input="changeInput"></el-input><hr><EmitChild @getChildValue="getChildValue"></EmitChild></div>
</template>
<script>
import EmitChild from './child.vue'export default{name:'emitTest',data(){return{value:'父组件默认的值',childFun:()=>{}}},components:{EmitChild},mounted(){},methods:{getChildValue(childValue){if(typeof childValue === 'function'){this.childFun = childValue}else{this.value = childValue}},changeInput(value){this.childFun(value)}}}
</script>
<style lang="less"></style>

子组件

<template><div>子组件<el-input v-model="value" @input="changeValue"></el-input></div></template><script>export default{name:'emitChild',data(){return{value:'子组件默认的值'}},mounted(){this.$emit('getChildValue',this.emitFun)},methods:{changeValue(){this.$emit('getChildValue',this.value)},emitFun(value){this.value = value}}}</script><style lang="less"></style>

$ref实现父子双向传参

父组件

<template><div><p>父组件的值:{{ value }} <el-button @click="addNum">增加</el-button> </p><hr><Child ref="child"></Child></div>
</template>
<script>
import Child from './child.vue'export default{name:'refTest',components:{Child},data(){return{value:0}},mounted(){this.$refs.child.getFun(this.funHandler)},methods:{addNum(){this.value++this.$refs.child.getValue(this.value)},funHandler(value){this.value = value}}}
</script>

子组件

<template><div>子组件的值{{ value }}<el-button @click="add">增加</el-button></div>
</template>
<script>export default{name:'refTest',data(){return{value:0,funHandler:()=>{}}},methods:{getValue(val){this.value = val},getFun(funHandler){this.funHandler = funHandler},add(){this.value ++this.funHandler(this.value)}}}
</script>

结束语

虽然在开发中,大部分人都会按照既定思维,props和ref父传子,emit子传父,但是我们是开发者,需要有更多的思维在里面,你可以不用,但是你需要去思考,去尝试。

vue和react等框架本身就大量使用了函数式编程的思想,作为使用者的我们,也要同样的将这种思想运用进去,才会有更多优质的代码,才回提升自己。

http://www.hrbkazy.com/news/34050.html

相关文章:

  • 北京做百度网站建设品牌整合营销案例
  • 网站左右箭头素材静态网站模板
  • 北京web网站开发培训班东莞网络推广托管
  • 福州建站价格北京网站优化步骤
  • 可以做免费推广的网站吗网店运营公司
  • 电子商务的网站建设过程网站建设详细方案模板
  • wordpress标签说明seo怎么优化
  • 整站快速排名优化什么平台可以免费推广产品
  • 网站网址模板郑州技术支持seo
  • 做a网站百度网站大全首页
  • 做电商必须知道的网站关键词可以分为哪三类
  • 网站关键词怎样修改电商网站有哪些
  • 在微信上做彩票网站吗seo排名点击软件推荐
  • 长沙网站建设+个人恩城seo的网站
  • 网站死链怎么办网店代运营正规公司
  • 效果好企业营销型网站建设开发海外新闻app
  • 怎么判断网站是不是模板做的百度关键词排名查询工具
  • 商丘网站建设费用百度最怕哪个部门去投诉
  • 福建省建设执业注册与管理中心网站百度搜索简洁版网址
  • 数码商城网站建设网站百度收录要多久
  • 邢台市人口seo文章代写一篇多少钱
  • 诸暨制作网站的公司有哪些长沙做网络推广公司的
  • 网站代码优化怎么做谷歌seo培训
  • 法院ppt做的最好的网站知乎关键词排名
  • 做网站杭州新浪网今日乌鲁木齐新闻
  • 大连网络营销网站网站维护一般怎么做
  • 网上做问卷报酬不错的网站是交换链接营销的典型案例
  • app设计网站模板发帖子的网站
  • 可以做公司网站办理培训机构需要具备的条件
  • 长沙专业网站制作设计深圳网站页面设计