现实背景:很多时候我们会在全局调用一些方法。
实现方式两种:官网的实现use方法,然后你也可以用野路子直接在Vue.prototype上面定义。
先说野路子,因为其实野路子就是最根本的实现方式,官方的use实现也是一样的,只是use很好的封装了。
/*
*main.js中实例Vue时添加方法
*/
import Vue from 'vue';
//这样以后你就可以在该项目下的其他组件中使用hello了,直接调用 this.hello('正字表达狮')。
Vue.prototype.hello = function(name){
console.log(`hello ${name}`)
}
new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
原理很简单,因为Vue实质上就是一个对象。大多数对象都会存在原型对象,在Vue原型上添加了方法之后,new Vue()实例化时vm就继承了该方法。因为其他组件也会继承vm所以所有的组件都可以调用该方法。接下来看看Vue.use()。
首先我新建一个deta.js。里面封装一个对象。
const date = {
tickToLong(tick) {
let seconds = tick / 1000;
let h = Math.floor(seconds / 60 / 60);
l