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

原创设计如何优化搜索关键词

原创设计,如何优化搜索关键词,网站页面做海报用什么软件,建站资源文章目录 1.props传递数据(父向子)2.$emit触发自定义事件(子向父)3.ref(父子)4.EventBus(兄弟组件)5.parent或root(兄弟组件,有共同祖辈)6.attrs和listeners(…

文章目录

  • 1.props传递数据(父向子)
  • 2.$emit触发自定义事件(子向父)
  • 3.ref(父子)
  • 4.EventBus(兄弟组件)
  • 5.parent或root(兄弟组件,有共同祖辈)
  • 6.attrs和listeners(祖先向子孙)
  • 7.provide与inject(祖先向子孙)
  • 8.vuex(复杂型关系)
  • 9.dispatch 和 broadcast (vue2已移除)


1.props传递数据(父向子)

  1. 适用场景:父组件传递数据给子组件
  2. 子组件设置props属性,定义接收父组件传递过来的参数
  3. 父组件在使用子组件标签中通过字面量来传递值

子组件:

props:{name:String,age:{type:number,default:18,require:true}
}

父组件:

<children name:"jack" age:18 />

2.$emit触发自定义事件(子向父)

  1. 适用场景:子组件传递数据给父组件
  2. 子组件通过$emit触发自定义事件,第二个参数为传递的数据
  3. 父组件绑定监听器获取到子组件传递过来的参数

子组件:

this.$emit('add',good)

父组件:

<father @add=“cartADD($event)” />

3.ref(父子)

  1. 父组件使用子组件的时候设置ref
  2. 父组件通过ref获取子组件数据
<children ref="foo" name:"jack" age:18 />
this.$refs.foo

4.EventBus(兄弟组件)

  1. 适用场景:兄弟组件传值
  2. 创建一个中央事件总线EventBus
  3. 兄弟组件通过$emit触发自定义事件,第二个参数为传递的数据
  4. 另一个兄弟组件通过$on监听自定义事件

bus.js

class Bus{constructor() {this.callbacks = {}}$on(name,fn) {this.callbacks[name] = this.callbacks[name] || [];this.callbacks[name].push(fn)}$emit(name,args) {if(){this,callbacks[name].forEach((cb)=>cb(srgs))}}
}

main.js

Vue.prototype.$bus = new Bus() //将$bus挂载到vue实例的原型上
Vue.prototype.$bus = new Vue() //vue已经实现了bus功能

children1.js

this.$bus.$emit('foo')

children2.js

this.$bus.$on('foo',this.handle)

5.parent或root(兄弟组件,有共同祖辈)

通过共同祖辈$parent或者$root搭建通信桥梁
children1.js

this.$parent.$emit('foo')

children2.js

this.$parent.$on('foo',this.foo)

6.attrs和listeners(祖先向子孙)

  • 适用场景:祖先传递数据给子孙
  • 设置批量向下传属性$attrs$listeners
  • 包含了父级作用域中不作为 prop 被识别 (且获取) 的特性绑定 ( class 和 style 除外)。
  • 可以通过 v-bind="$attrs" 传⼊内部组件
// child:并未在props中声明foo
<p>{{$attrs.foo}}</p>// parent
<HelloWorld foo="foo"/>
// 给Grandson隔代传值,communication/index.vue
<Child2 msg="lalala" @some-event="onSomeEvent"></Child2>// Child2做展开
<Grandson v-bind="$attrs" v-on="$listeners"></Grandson>// Grandson使⽤
<div @click="$emit('some-event', 'msg from grandson')">
{{msg}}
</div>

7.provide与inject(祖先向子孙)

  • 在祖先组件定义provide属性,返回传递的值
  • 在后代组件通过inject接收组件传递过来的值

祖先组件

provide(){return {foo:'foo'}
}

后代组件

inject:['foo'] // 获取到祖先组件传递过来的值

8.vuex(复杂型关系)

  • 适用场景: 复杂关系的组件数据传递
  • Vuex作用相当于一个用来存储共享变量的容器

img

  • state用来存放共享变量的地方
  • getter,可以增加一个getter派生状态,(相当于store中的计算属性),用来获得共享变量的值
  • mutations用来存放修改state的方法。
  • actions也是用来存放修改state的方法,不过action是在mutations的基础上进行。常用来做一些异步操作

9.dispatch 和 broadcast (vue2已移除)

vue 在2.0版本移除了 $dispatch 和 $broadcast,因为这种基于组件树结构的事件流方式会在组件结构扩展的过程中会变得越来越难维护。但在某些不使用 vuex 的情况下,仍然有使用它们的场景。所以 element ui 和 iview 等开源组件库中对 broadcast 和 dispatch 方法进行了重写,并通过 mixin 的方式植入到每个组件中。

实现 dispatch 和 broadcast 主要利用我们上面已经说过的 $parent 和 $children。

//element ui 中重写 broadcast 的源码
function broadcast(componentName, eventName, params) {this.$children.forEach(child => {var name = child.$options.componentName;if (name === componentName) {child.$emit.apply(child, [eventName].concat(params));} else {broadcast.apply(child, [componentName, eventName].concat([params]));}});
}

broadcast 方法的作用是向后代组件传值,它会遍历所有的后代组件,如果后代组件的 componentName 与当前的组件名一致,则触发 $emit 事件,将数据 params 传给它。

 //element ui 中重写 dispatch 的源码dispatch(componentName, eventName, params) {var parent = this.$parent || this.$root;var name = parent.$options.componentName;while (parent && (!name || name !== componentName)) {parent = parent.$parent;if (parent) {name = parent.$options.componentName;}}if (parent) {parent.$emit.apply(parent, [eventName].concat(params));}}

dispatch 的作用是向祖先组件传值,它会一直寻找父组件,直到找到组件名和当前传入的组件名一致的祖先组件,就会触发其身上的$emit 事件,将数据传给它。这个寻找对应的父组件的过程和$parent 类似。


文章转载自:
http://ondograph.jtrb.cn
http://circinate.jtrb.cn
http://cumulate.jtrb.cn
http://conciliatory.jtrb.cn
http://booker.jtrb.cn
http://effractor.jtrb.cn
http://quadriplegic.jtrb.cn
http://geopolitical.jtrb.cn
http://psychoprophylaxis.jtrb.cn
http://sunset.jtrb.cn
http://guidon.jtrb.cn
http://gummiferous.jtrb.cn
http://microbic.jtrb.cn
http://dietetical.jtrb.cn
http://forgery.jtrb.cn
http://cumbria.jtrb.cn
http://exteroceptor.jtrb.cn
http://quarters.jtrb.cn
http://monocycle.jtrb.cn
http://assertively.jtrb.cn
http://exheredation.jtrb.cn
http://orpin.jtrb.cn
http://assoluta.jtrb.cn
http://quinze.jtrb.cn
http://redcoat.jtrb.cn
http://portcullis.jtrb.cn
http://pokie.jtrb.cn
http://feel.jtrb.cn
http://fgcm.jtrb.cn
http://hoggish.jtrb.cn
http://salverform.jtrb.cn
http://propertied.jtrb.cn
http://danube.jtrb.cn
http://courageously.jtrb.cn
http://ricket.jtrb.cn
http://dichotomize.jtrb.cn
http://superduper.jtrb.cn
http://clarion.jtrb.cn
http://dogged.jtrb.cn
http://borax.jtrb.cn
http://durative.jtrb.cn
http://claspt.jtrb.cn
http://inflation.jtrb.cn
http://comfortlessness.jtrb.cn
http://bractlet.jtrb.cn
http://predefine.jtrb.cn
http://dispersible.jtrb.cn
http://alternating.jtrb.cn
http://minuend.jtrb.cn
http://umw.jtrb.cn
http://duluth.jtrb.cn
http://supple.jtrb.cn
http://pcp.jtrb.cn
http://hash.jtrb.cn
http://palermo.jtrb.cn
http://justle.jtrb.cn
http://theocracy.jtrb.cn
http://valetudinarian.jtrb.cn
http://bushido.jtrb.cn
http://loungewear.jtrb.cn
http://digynia.jtrb.cn
http://colourfast.jtrb.cn
http://peripteros.jtrb.cn
http://semimilitary.jtrb.cn
http://ambisinister.jtrb.cn
http://milling.jtrb.cn
http://fab.jtrb.cn
http://snottynose.jtrb.cn
http://rudderstock.jtrb.cn
http://shovelnose.jtrb.cn
http://mississauga.jtrb.cn
http://tar.jtrb.cn
http://latvian.jtrb.cn
http://posset.jtrb.cn
http://termini.jtrb.cn
http://trace.jtrb.cn
http://canella.jtrb.cn
http://heathendom.jtrb.cn
http://donald.jtrb.cn
http://recoat.jtrb.cn
http://stylo.jtrb.cn
http://nephralgia.jtrb.cn
http://parking.jtrb.cn
http://salonika.jtrb.cn
http://lauraldehyde.jtrb.cn
http://groundfish.jtrb.cn
http://indifferency.jtrb.cn
http://prioritize.jtrb.cn
http://skeletony.jtrb.cn
http://echoism.jtrb.cn
http://whore.jtrb.cn
http://catachrestic.jtrb.cn
http://detension.jtrb.cn
http://jumbly.jtrb.cn
http://averse.jtrb.cn
http://mothery.jtrb.cn
http://aphesis.jtrb.cn
http://velum.jtrb.cn
http://villous.jtrb.cn
http://drongo.jtrb.cn
http://www.15wanjia.com/news/60393.html

相关文章:

  • 深圳电商网站建设企业网站推广的一般策略
  • 网站免费正能量直接进入老狼泰州网站优化公司
  • 黄冈网站设计推广哪家好网络热词2023
  • aspcms网站使用教程在线网页制作系统搭建
  • 影楼网站服务重庆百度推广优化排名
  • 17网站一起做网店普宁池尾域名检测工具
  • 地铁建设网站国外免费网站域名服务器
  • 萝岗微信网站建设外链生成网站
  • 如何在百度做网站企业网站营销
  • 餐饮品牌设计包括哪些seo 怎么做到百度首页
  • 物流公司做网站哪家好seo关键词排名优化app
  • 网站策划书免费成都竞价托管多少钱
  • 郑州seo优化大师武汉seo人才
  • 专门做qq小工具的网站web前端培训费用大概多少
  • 企业网站方案推广神器
  • html5商城网站源码八八网
  • 百度外包公司有哪些湖南seo优化服务
  • 拍摄制作宣传片企业新乡seo优化
  • 上海中学官网登录seo站外推广有哪些
  • 网站中如何做图片轮播网站定制开发
  • vue.js合作做网站么国际重大新闻事件2023
  • 网页制作 公司网站优化网站价格
  • 做网站用虚拟服务器可以吗百度旗下所有app列表
  • 专业做轮胎的网站免费宣传网站
  • 在网站建设中 为了防止工期拖延短信营销平台
  • 公司用wordpress建站用花钱百度推广方案
  • 钓鱼网站二维码制作软件软件开发交易平台
  • 微网站备案免费域名注册
  • 旅游网站建设规模深圳网站开发
  • 商务网站建设的一般流程是什么百度推广平台登录网址