mixin混入
混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。
示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>mixin 混入</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script> </head> <body> <div id="app"> <div>姓名:{{ name }},性别:{{ sex }}</div> </div> <script type="text/javascript"> var mixin = { data() { return { name: '张三', sex: '男' } } } new Vue({ el: '#app', mixins: [mixin] }); </script> </body> </html>
|
- 当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行“合并”。
- 数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先。
filters过滤器
Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示。
模版代码:
1 2 3 4 5
| <!-- 在双花括号中 --> <div>{{ msg | toUpperCase }}</div>
<!-- 在 `v-bind` 中 --> <div v-bind:msg="msg | toUpperCase"></div>
|
示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>filters 过滤器</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script> </head> <body> <div id="app"> <div>{{ msg | toUpperCase }}</div> </div> <script type="text/javascript"> new Vue({ el: '#app', filters: { toUpperCase(val) { return val.toUpperCase(); } }, data() { return { msg: 'abcdefg' } } }); </script> </body> </html>
|
总结
在开发过程中,filters过滤器是比较常用的,比如订单状态,时间格式转换等都会使用一下。而mixin混入用的相对会少一些,虽然mixin混入不需要传递状态,但是也比较容易被滥用。