凭vue的模板代码需要始终信任和完全控制吗?

异步子组件和全局注册很类似:

上面的例子中,前文提到的工厂函数支持返回一个 Promise 对象,所以可以使用 import() 这种代码分离方式。

ponent('async-demo', function(resolve) {
C#母版页和内容页事件排版加载顺序生命周期 关于ASP页面Page_Load发生在事件之前而导致的问题已经喜闻乐见,对于问题的解释也很全面,但是如何解决问题则较少有人说明,我就再 简单 ...

 
 
 
  1. 有时候相识即是一种缘分,相爱也不需要太多的理由,一个眼神足矣,当EntityFramework遇上AutoMapper,就是如此,恋爱虽易,相处不易. 在DDD(领域驱动设计)中,使用AutoMapp ...

  2. 中文文本分类不像英文文本分类一样只需要将单词一个个分开就可以了,中文文本分类需要将文字组成的词语分出来构成一个个向量.所以,需要分词. 这里使用网上流行的开源分词工具结巴分词(jieba),它可以有效 ...

  3. 创建临时表:execute immediate 'sql'; 通过临时表和关联查询解决循环处理效率低下,大数据操作移植时时间太长的问题. 结构相同的系统数据库表移植,案例如下: create or r ...

  4. 定义: 保证一个类仅有一个实例,并提供一个全局访问点 适用场景: 确保任何情况下这个对象只有一个实例 详解: 私有构造器 单利模式中的线程安全+延时加载 序列化和反序列化安全, 防止反射攻击 结合JD ...


组件设计有两种风格,即 ——

上文提到,intent - model -view 是整个应用的数据流向,被成为:单向数据流

这一点不能被破坏,不能被改写,数据流向一旦破坏,很多意外情况就会发生

因此,你需要明确什么能做,什么不能做,组件需要明确自己应该以何种方式接入整个应用的生命周期

在保证单向数据流的情况下(即箭头方向一定),怎么接入组件呢?

对的,你有两种接入方式

  • 作为数据源的代理,代替数据源与用户对话,即模板驱动
  • 作为用户逻辑的代理,代替用户去消费数据,即数据驱动

注意!:这里说的输入输出,是指的响应式输入输出,配置的静态数据不含响应式的不在此列,输入不会引起变化,就是初始化问题,非数据流问题

举个例子,比如新版本的 ant-design (react),当你将表单作为数据源的时候,有模板驱动的用法:

这里 initialValues 作为配置,onFinish 作为输出,符合单向数据流流向用户逻辑

而在 antdv (vue) 中,model 作为响应式数据传递的时候,符合数据流从用户向消费端流出,属于数据驱动组件:

但是,由于之前响应式传递,逻辑复用的习惯还在,很多单纯的用法很难贯彻,所以组件实现都不是很存粹

但是目前,有了新方案之后,这些实现会非常方便

比如数据驱动和模板驱动的区别,就在于用户是否有权力 ——

声明和完全控制组件响应式

是封装在组件内,还是封装在组件外,由用户去初始化?

而 这个 profileForm,对表单有完全的控制权:


实际使用中,两种方式都会大量运用:

模板驱动组件使用简单,封装了复杂性,但是灵活性很差

数据驱动组件使用较为复杂,但是用户权限很大

如果是第三方开发者,所有含响应式逻辑组件都应该有两种调用方式给到

如果是普通用户,尽量采用模板驱动会更方便,效率也更高

我要回帖

更多关于 vue全局自定义指令 的文章

 

随机推荐