前言
- 本篇来学习vue(仅适用vue2)中过滤器的基本用法
过滤器
- 过滤器(Filters)是vue为开发者提供的功能,常用于文本的格式化。可以用在两个地方:插值表达式和v-bind属性绑定。
私有过滤器
插值表达式中使用
<p>{{message | capital }}</p>
使用示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>过滤器基本使用</title> </head> <body> <div id="app"> <p>{{message | capital }}</p> </div> <!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> const app = new Vue({ el: '#app', data: { message: 'hello 小白!' }, // 定义过滤器一定要在filters中 filters: { // 过滤器形参中的val 是管道符前面的值 capital(val) { // 字符串 charAt(0)方法,取对应索引值 console.log(val.charAt(0)) // toUpperCase 转大写 const first = val.charAt(0).toUpperCase() // slice 指定索引往回截取 const other = val.slice(1) // 过滤器一定要有返回值 return first + other } } }) </script> </body> </html>
v-bind属性绑定
<input type="text" v-bind:placeholder="message|capital">
使用示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>过滤器基本使用</title> </head> <body> <div id="app"> <input type="text" v-bind:placeholder="message|capital"> </div> <!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> const app = new Vue({ el: '#app', data: { message: 'hello 小白!' }, // 定义过滤器一定要在filters中 filters: { // 过滤器形参中的val 是管道符前面的值 capital(val) { // 字符串 charAt(0)方法,取对应索引值 console.log(val.charAt(0)) // toUpperCase 转大写 const first = val.charAt(0).toUpperCase() // slice 指定索引往回截取 const other = val.slice(1) // 过滤器一定要有返回值 return first + other } } }) </script> </body> </html>
全局过滤器
- 使用Vue.filter()定义全局过滤器;接收两个参数 第一个全局过滤名称,第二个 全局过滤器的处理函数
使用示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>过滤器基本使用</title> </head> <body> <div id="app"> <p>{{message | capital }}</p> </div> <div id="app2"> <input type="text" v-bind:placeholder="message|capital"> </div> <!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> // 使用Vue.filter()定义全局过滤器;接收两个参数 第一个全局过滤名称,第二个 全局过滤器的处理函数 Vue.filter('capital', function (val) { // 字符串 charAt(0)方法,取对应索引值 console.log(val.charAt(0)) // toUpperCase 转大写 const first = val.charAt(0).toUpperCase() // slice 指定索引往回截取 const other = val.slice(1) // 过滤器一定要有返回值 return first + other }) const app = new Vue({ el: '#app', data: { message: 'hello 小白!' } }) const app2 = new Vue({ el: '#app2', data: { message: 'hello 大海!' } }) </script> </body> </html>