【精讲】vue框架 过滤器(全局及局部)、 自定义指令(内含注释)

目录

第一部分:过滤器(全局及局部)

第二部分:自定义指令(全局及局部)


第一部分:过滤器(全局及局部)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="root">
            <p>原数据:{ {num}}</p>
            <!-- 第一个数据是原数据 也可以写别的新数据  第二个是判断过滤后的结果  第三个是全局过滤器截取前四位,可以同时实现两种效果-->
            <h2>{ {num | toLowerCase(1) | myslice}}</h2>
        </div>
        
        <script type="text/javascript">
            // 全局过滤器  这里的filter不加s 局部要加 内部第一个是过滤数据名 第二个是回调函数 内部是截取字符串 前四位
            Vue.filter('myslice',function(value){
                return value.slice(0,4)
            })
            
            
            new Vue({
                el:'#root',
                data() {
                    return{
                        num:'abCDEfgjs',
                    }
                },
                // 局部过滤器
                filters:{
                    // 过滤器 第一个是函数名(自定义命名)   后面跟的是函数内部有两个形参,第一个是固定参数,第二个是根据你的需求
                    //传入(判断)

                    toLowerCase:function(value,styles){
                        if(styles==1){
                            // 将字母转化为大写
                            return value.toUpperCase() 
                        }else{
                            // 将字母转化为小写
                            return value.toLowerCase() 
                        }
                    }
                }
            })
        </script>
    </body>
</html>

第二部分:自定义指令(全局及局部)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="js/vue.js"></script>
    </head>
    <body>
        
        <div id="root">
            <h2>原数据:{ {num}}</h2>
            <p>扩大:<span v-big="num"></span></p>
            <input type="text" v-myfocusto="num">
            <button @click="num++">+1</button>
        </div>
        
        <script type="text/javascript">
            // 注 element绑定的是原数据   binding绑定的是会被更改的数据值
            // 全局自定义指令

            Vue.directive('myfocusto',{
                //一上来就绑定的时候
                big(element,binding){
                    element.value=binding.value*10;//绑定num的值时
                    element.focus();//聚焦
                },
                // 当元素插入页面的时候调用
                inserted(element,binding){
                    element.focus()
                },
                //更新的时候  数据在发生变化的时候
                update(element,binding){
                    element.value=binding.value*10 //绑定的值
                }
            })
            
            
            // 局部自定义指令
            new Vue({
                el:'#root',
                data() {
                    return{
                        num:0
                    }
                },
                directives:{
                //更新时与绑定时调用  第一个参数指:原数据  第二个是绑定的数据
                big(element,binding){
                    element.innerText = binding.value*10//绑定num的值
                },
                
                myfocus:{
                    //一上来就绑定的时候
                big(element,binding){
                    element.value=binding.value*10;//绑定num的值时
                    element.focus();//聚焦
                },
                // 当元素插入页面的时候调用
                inserted(element,binding){
                    element.focus()
                },
                //更新的时候  数据在发生变化的时候
                update(element,binding){
                    element.value=binding.value*10 //绑定的值
                }
                }
                }
            })
        </script>
    </body>
</html>

猜你喜欢

转载自blog.csdn.net/m0_59505309/article/details/126283960