2020
10-08
10-08
浅谈vue中$bus的使用和涉及到的问题
Hello大家周末好,最近项目比较忙所以没有及时的更新抱歉,今天给大家讲一vue.bus。使用过的都知道$bus是兄弟之间相互传值的项目中说实话用的地方不算多但是也会用到(每一个领域都是会有坑的呀)。1:创建$bus文件创建一个文件内容如下:importVuefrom'vue'exportdefaultnewVue();2:引入$busmain.js:importBusfrom'./views/bus/bus';Vue.prototype.$bus=Bus;//注意这里的Vue是我上面引入的vueimportVuefrom'vue...
继续阅读 >
我就废话不多说了,大家看代码吧~<!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title><scriptsrc="https://cdn.jsdelivr.net/npm/vue"></script><scriptsrc="https://cdn.bootcss.com/vue-router/3.1.3/vue-router.js"></script><scriptsrc="https://unpkg.com/axios/dist/axios.min.js"></script></head><body><divid="app"><input@click="currentrouter='Home'"type="button"value="首...
bus总线是vue中路由跳转传递数据的常用方法,适用于传递数据不多的情况,但是在使用的过程中发现,bus总线在第一次路由跳转的时候总是不能够成功传递需要传递的数据。检查bus的配置以及调用方法,均没有出错,错就错在没有理解Vue的生命周期!!!我们知道bus的$on的监听应该位于$emit之前,如果在emit之前没有创建监听事件,那么肯定是得不到需要的数据。因此,我通过两个页面来了解路由跳转时两个页面的生命周期,下面给出其中一...
当数据量较大(此处设定为10w),而且要用列表的形式展现给用户,如果我们不做处理的话,在浏览器中渲染10wdom节点,是极其耗费时间的,那我的Macbookair举例,10w条数据渲染出来到能看到页面,需要13秒多(实际应该是10秒左右),如果是用户的话肯定是不会等一个网页十几秒的我们可以用虚拟列表解决这个问题一步步来首先看一下效果这是data中的数据data(){return{list:[],//贼大的数组li:{//列表项信息height:50,...
在vue开发手机端项目时,我们经常会遇到touch和click共存的情况,比如城市选择页面的字母滑动touch事件在手机端会触发浏览器滑动,所以应给touch事件添加阻止默认行为touchmove.prevent。注意阻止默认行为事件不要添加在touchstart事件上,会影响到click事件的发生。touch事件和click事件发生先后顺序:touchstart,touchmove,touchend,click补充知识:touchstart与click同时触发产生冲突的原因我们可以给某个元素同时绑定touch...
如下所示:<divid="myChartChina":style="{width:'100%',height:'500px'}"></div>mounted(){this.drawLine();},drawLine(){//基于准备好的dom,初始化echarts实例varmyChartContainer=document.getElementById('myChartChina');varresizeMyChartContainer=function(){myChartContainer.style.width=(document.body.offsetWidth/2)+'px'//页面一半的大小}resizeMyChartContai...
<divid="myChart":style="{width:'100%',height:'345px'}"></div><script>exportdefault{mounted(){this.drawLine();},methods:{drawLine(){varmyChartContainer=document.getElementById('myChart');//用于使chart自适应宽度,通过窗体宽计算容器高宽varresizeMyChartContainer=function(){myChartContainer.style.width=(document.body.clientWidth-75)+'px'}//设置容器...
this.$parent访问父实例this.$children当前实例的直接子组件。(不保证顺序,不是响应式)this.$parent.$parent.$refs.xxx跨级访问父组件this.$children.$children.$refs.xxx跨级访问子组件这种递归的方式代码繁琐性能低效ref只能获取当前组件上下文组件无法跨层级ref是字符串被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的$refs对象上。如果在普通的DOM元素上使用,引用指向的就是DOM元素;如果用在...
兄弟组件之间的通信同样是在项目中经常会遇到的组件间的通信问题之一,这种问题的最根本方法就是:把兄弟组件内部的变量提升到一个中央仓库。借助父级组件链式交互使子组件1通过$emit通知父级,父级再通过响应子组件1的事件去触发子组件2的事件,这样的链式操作,在子组件不多的时候,但是一个不错的解决方法子组件1<template><div><p@click="$emit('fromFirst','来自A组件')">first组件</p></div></template><script>...
vue中我们常常用到组件.那么组件总体可以分为如下的几种关系.父子组件,爷孙组件,兄弟组件.这几种组件之间是如何通信的呢?父子组件通信根据vue中的文档可知,组件的props属性用于接收父组件传递的信息.而子组件想要向父组件传递信息,可以使用$emit事件.我们定义两个组件,一个为父组件名为father,另外一个为子组件child.子组件通过props属性接收父组件传递的值,这个值为fname,是父组件的名字.点击子组件的按钮,触发...