美文网首页
Vue2.0(组件,过滤器)

Vue2.0(组件,过滤器)

作者: Jianshu9527 | 来源:发表于2017-06-14 21:11 被阅读2278次

组件模板代码写法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Vue2.0模板语法</title>
    <script src="jquery-3.1.1.min.js"></script>
    <script src="vue.min.js"></script>
    <script type="text/javascript">
    $(function(){
        Vue.component("my-aaa",{
            template:'<h3>我是组件</h3>'
        })
        var vm = new Vue({
            el:"#box",
            data:{
                msg:"Vue 2.0"
            }
        })
    })
    </script>
</head>
<body>
    <div id="box">
        <my-aaa></my-aaa>
        {{msg}}
    </div>
</body>
</html>

多个元素的书写

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title></title>
    <script src="jquery-3.1.1.min.js"></script>
    <script src="vue.min.js"></script>
    <script type="text/javascript">
    $(function(){
        Vue.component("my-aaa",{
            template:'#aaa'
        })
        var vm = new Vue({
            el:"#box",
            data:{
                msg:"Vue 2.0"
            }
        })
    })
    </script>
</head>
<body>
    <template id="aaa">
        <div>
           <h1>这个是一个组件</h1>
           <b>加粗部分</b>
        </div>
    </template>
    <div id="box">
        <my-aaa></my-aaa>
        {{msg}}
    </div>
</body>
</html>

问题小结: 组件外面必须有一个根元素包裹(1.0可直接书写)

组件定义

//js代码(1.0版本)
<script type="text/javascript">
    window.onload=function(){
        Vue.component(组件名称,{
            data:{
                // 数据
            },
            methods:{
                // 方法
            },
            template:
        })
    }
</script>
//js代码(2.0版本)=>Vue.extend
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title></title>
    <script src="jquery-3.1.1.min.js"></script>
    <script src="vue.min.js"></script>
<script type="text/javascript">
    var Home={
        template:'#aaa'
    };
    Vue.component("my-aaa",Home);
    window.onload=function(){
        Vue.component(组件名称,{
            data:{
                // 数据
            },
            methods:{
                // 方法
            },
            template:
        })
    }
</script>
</head>
<body>
    <template id="aaa">
        <h1>这个是一个组件</h1>
        <b>加粗部分</b>
    </template>
    <div id="box">
        <my-aaa></my-aaa>
        {{msg}}
    </div>
</body>
</html>

小结:组件分局部和全局之分

生命周期

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <script src="jquery-3.1.1.min.js"></script>
    <script src="vue.min.js"></script>
    <script type="text/javascript">
        $(function(){
            new Vue({
               el:"#box",
               data:{
                msg:"Vue2.0"
               },
               methods:{
                update:function(){
                    this.msg = "我是Vue2.0"
                }
               },
               beforeCreate(){
                alert("组件实例刚刚被创建");
               },
               created(){
                alert("组件已经创建完成")
               } ,
               beforeMount(){
                alert("模板编译之前");
               },
               mounted(){   //=>(类似1.0ready)
                alert("模板已经编译完成");
               },
               beforeUpdate(){
                alert("组件更新之前") //查看数据的更新状态
               },
               updated(){
                alert("组件更新完毕") 
               },
               beforeDestroy(){
                alert("组件销毁前")
               },
               destroyed(){
                alert("组件销毁后")
               }
            })
        })   
    </script>
</head>
<body>
    <div id="box">
    <input type="button" value="更新数据" @click="update"/>
        {{msg}}
    </div>
</body>
</html>

Vue 循环

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Vue2.0 循环可以重复添加数据</title>
    <script src="jquery-3.1.1.min.js"></script>
    <script src="vue.min.js"></script>
    <script type="text/javascript">
        $(function(){
            new Vue({
                el:"#box",
                data:{
                    list:["width","height","border"]
                },
                methods:{
                    add(){
                        this.list.push("new background");
                    }
                }
            })
        })   
    </script>
</head>
<body>
    <div id="box">
        <input type="button" value="添加" @click="add"/>
        <ul>
            <li v-for="value in list">
                {{value}}
            </li>
            <br />
            <!-- 2.0去掉了隐式变量 -->
            <li v-for="(value,index) in list">
                {{value}} {{index}}
            </li>
            <!-- 1.0版本-->
            <li v-for="(index,value) in list">
                {{value}} {{index}}
            </li>
        </ul>
    </div>
</body>
</html>

过滤器
自定义过滤器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>自定义过滤器</title>
    <script src="jquery-3.1.1.min.js"></script>
    <script src="vue.min.js"></script>
    <script type="text/javascript">
        $(function(){
            Vue.filter("toDou",function(n,a,b){
                alert(a+","+b)
                return n<10?'0'+n:''+n;
            })
            new Vue({
                el:"#box",
                data:{
                    msg:9
                }
            })
        })   
    </script>
</head>
<body>
    <div id="box">
        {{msg | toDou("1","2")}}
    </div>
</body>
</html>

相关文章

  • Vue2.0-Vue3.0语法差异性总结

    Vue2.0 Vue2.0实例 Vue2.0 组件 使用组件的细节 在 ttable > tbody > tr 使...

  • Vue过滤器

    vue2.0取消了自带的过滤器,只能自定义过滤器

  • Vue2.0(组件,过滤器)

    组件模板代码写法 多个元素的书写 问题小结: 组件外面必须有一个根元素包裹(1.0可直接书写) 组件定义 小结:组...

  • vue2.0中keep-alive实践

    vue2.0中keep-alive实践 vue2.0提供了一个keep-alive组件,用来缓存组件,避免多次加载...

  • Vue2.0中Filter的使用问题

    vue2.0里,不再有自带的过滤器,需要自己定义过滤器 在 Vue1.0 中内置了几种实用的过滤器函数如 uppe...

  • vue2.0和1.0的区别

    vue2.0跟1.0差别:(总体变化不大) 1.关于过滤器: 2.0移除了自带过滤器,但是保留了自定义过滤器的功能...

  • vue学习大纲3-过滤器、指令、动画

    自定义过滤器: 在vue1.0中有过滤器,比如: 在vue2.0中所有的内置过滤器都被销毁了,2.0推荐我们自己写...

  • 树形结构递归/原生js实现/vue递归组件

    原生js实现递归渲染 Vue2.0递归组件

  • vue自定义过滤器

    vue2.0废弃了内置过滤器,允许自定义过滤器。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后...

  • Vue2.0系列(六)过滤器

    vue2.0已经废弃了过滤器,需要自定义过滤器,用于一些常见的文本格式化。感觉超级好用!! 过滤器可以用在两个地方...

网友评论

      本文标题:Vue2.0(组件,过滤器)

      本文链接:https://www.haomeiwen.com/subject/bzatottx.html