首頁 > 軟體

Vue過濾器使用方法詳解

2022-12-17 14:00:11

前言

本篇來學習vue(僅適用vue2)中過濾器的基本用法

過濾器

過濾器(Filters)是vue為開發者提供的功能,常用於文字的格式化。可以用在兩個地方:插值表示式和v-bind屬性繫結。

私有過濾器

插值表示式中使用

<p>{<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->{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>

到此這篇關於Vue過濾器使用方法詳解的文章就介紹到這了,更多相關Vue過濾器內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com