vue组件一直注册不了_为什么vue中,全局组件注册总是要写在创建vue实例前面?...

是的,不过知识稍微扩展下,我们引入另一个知识点:职责链模式

什么是职责链模式?

我们上班的时候经常遇到高峰期,那么搭公交的时候会把硬币传递给前面的人,然后人传人一层一层的传递下去直到放到投币箱或者售票员

这种投递的优点就是请求发送者只需要知道链中的第一个节点,从而弱化了发送者和一组接收者之间的强联系。如果不使用职责链模式,那么在公交车上,我就得先搞清楚谁是售票员,才能把硬币递给他。

我们在vue中创建的组件可以当做是职责链的一环,每个组件都有自己的职责,然后在全局初始化的时候,组件成了系统的一部分,执行的先后在这里其实取决于代码执行的先后,而真正的职责连是怎么样的呢?

对于程序员来说,我们总是喜欢去改动那些相对容易改动的地方,就像改动框架的配置文件远比改动框架的源代码简单得多

让我们来看看AOP编程:

Function.prototype.before = function( beforefn ){

var __self = this; // 保存原函数的引用

return function(){ // 返回包含了原函数和新函数的"代理"函数

beforefn.apply( this, arguments ); // 执行新函数,且保证this不被劫持,新函数接受的参数

// 也会被原封不动地传入原函数,新函数在原函数之前执行

return __self.apply( this, arguments ); // 执行原函数并返回原函数的执行结果,

// 并且保证this不被劫持

}

}

Function.prototype.after = function( afterfn ){

var __self = this;

return function(){

var ret = __self.apply( this, arguments );

afterfn.apply( this, arguments );

return ret;

}

};

用AOP装饰函数的技巧在实际开发中非常有用。不论是业务代码的编写,还是在框架层面,我们都可以把行为依照职责分成粒度更细的函数,随后通过装饰把它们合并到一起,这有助于我们编写一个松耦合和高复用性的系统。

说了一些扩展的知识点希望对你有帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值