(十五)Vue3.x中我们将采用mitt实现全局事件总成

JavaScript017

(十五)Vue3.x中我们将采用mitt实现全局事件总成,第1张

1、前言:由于Vue3.x中删除了 off,因此不能借助于一个单独的Vue实例来实现全局事件的发布和订阅与取消订阅(也就是跨组件通讯)。

2、概述:mitt是一个三方库,npm安装:npm install -D mitt

3、使用:我们以同样使用插件的方式将mitt集成到Vue中。

4、mitt对象:

6、组件实例中使用:

全局事件发布

全局事件订阅/取消订阅

下一章: (十六)Vue3.x中使用vue-router的新特性

上一章: (十四)Vue3.x核心之getCurrentInstance

ps: “嗨,你还是一点都没有变阿!”,对了,他可能没有夸你。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />

<title>show time</title>

<script language="javascript">

window.onload = running //加载窗口时即运行running()函数

function running(){

timeshow()

//jump()

}

/* 规定时间跳转页面

function jump(){

var today = new Date()

var h = today.getHours()

var mit = today.getMinutes()

var s = today.getSeconds()

//alert(h+":"+mit)

var now = h+":"+mit+":"+s

//alert(now)

var arr = new Array('7:30:00','11:30:00','17:00:00','21:30:00','24:00:00')

//document.write("arr[0]-->>"+arr[0]+"<br/>")

if(now == arr[0]){

document.location.href="test.html"

}

}

*/

function timeshow(){

var today = new Date()

//alert(today)

var y = today.getYear()

var m = today.getMonth()+1 //小时取出来时需+1

var d = today.getDate()

var h = today.getHours()

var mit = today.getMinutes()

var s = today.getSeconds()

var a = today.getDay()

var week = ""

switch(a){

case 0:

week = "星期日"

break

case 1:

week = "星期一"

break

case 2:

week = "星期二"

break

case 3:

week = "星期三"

break

case 4:

week = "星期四"

break

case 5:

week = "星期五"

break

case 6:

week = "星期六"

break

}

//判断当前时间的时间段

//h = 6 //给出具体值逐步测试程序运行到何处

var timetip = ""

if(h<12){

//alert(h)

if (h>6){

timetip = "上午"

}else if((h>0 &&h<6) || h==6 || h==0){

timetip = "早上"

} //end if

}else if(h == 12){

timetip = "中午"

}else{

if (h>12 &&h<18){

timetip = "下午"

}else if((h>18 &&h<24) || h==18){

timetip = "晚上"

} //end if

} //end if

//判断当前时钟的位数

var htip = ""

if (h<10)

{

htip = "0" + h //如果当前时钟位数是一位,则前面加0

}else{

htip = h.toString()

} //end if

//判断当前分钟的位数

var mittip = ""

if (mit<10)

{

mittip = "0" + mit //如果当前分钟位数是一位,则前面加0

}else{

mittip = mit

} //end if

//alert(htip)

//判断当前秒钟的位数

var stip = ""

if (s <10)

{

stip = "0" + s //如果当前秒钟位数是一位,则前面加0显示

}else{

stip = s

} // end if

var riqi = y+"年"+m+"月"+d+"日"+" "+week+" "+timetip+" " //将年月日及星期赋给riqi变量

//alert(riqi)

var sfm = htip+":"+mittip+":"+stip //将时分秒赋给sfm变量

//alert(sfm)

var spn = document.getElementById("datetime") //获取要放置的位置的对象

//alert(spn)

spn.innerHTML = riqi + sfm //将时间放入页面中

setTimeout("timeshow()",1000) //每隔1秒运行一次timesho()函数

}

</script>

</head>

<body>

<center><span id="datetime"></span></center>

</body>

</html>

说明::非常抱歉,这段代码只实现了时间的显示,但是跳转没有出来,还望海量高手解决,对于页面的跳转和时间在html中只能通过js脚本来实现,小弟只能帮着多了,见谅