vue组件封装

组件渲染方法选择

render
优点:javascript完全编码,如可以通过javascript对象动态配置渲染的内容。
缺点:html标签层级不明显、使用其他插件不能往指定元素上监听自定义事件、不能用vue响应式等。
template
优点:html层级维护性好、可直接使用vue双向绑定、使用其他插件可向任意标签监听自定义事件等
缺点:通过配置动态渲染组件内容时,动态渲染组件内容实现复杂
选择
template一般用于组件n次封装,标签层级复杂的组件;render一般用于组件内还需要根据javascript object配置定制化动态渲染标签,且标签层级简单的组件,或者最里层组件逻辑封装,不是组件二次封装或者没有使用二次封装组件的自定义事件,如el-table-column,template一般用于功能合集,如el-table。

组件自定义事件

实现原理:监听元素原生事件,如click、input,执行事件回调函数,由回调执行相应自定义事件方法。寻找自定义方法过程即为查询变量值过程,OA——作用域链等。
总结:组件包含独立的作用域,如自定义事件由$listener,独自自定义事件对象储存相应自定义事件。

你可能感兴趣的:(vue.js,组件化,component,render,渲染)