Vue 计算属性+slot

计算属性概念

可以理解为缓存的效果

简单代码

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
    <p>getCurrentTime1 {{getCurrentTime1()}}</p>
    <!--下面可以通过属性就调用-->
    <p>getCurrentTime2 {{getCurrentTime2}}</p>
</div>

<script src="js/vue.js"></script>
<script>
    var vm=new Vue({
        el:"#app",
        data:{
            message:"hello jie"
        },
        methods:{
            getCurrentTime1:function () {
                return Date.now();//返回当前时间戳
            }
        },
        //计算属性
        computed:{
            getCurrentTime2:function () {
                return Date.now();//返回当前时间戳
            }
        }
    });
</script>
</body>
</html>

区别:在控制台调用就会发现 计算属性的方式数值并不会更新。
Vue 计算属性+slot

计算属性就是将不经常变化的数据保存起来,形成缓存的效果。

slot概念

Vue 计算属性+slot
slot相当于一个空标签,通过vue可以实现动态改变值和样式,把一块区域内容抽了出来可以实现复用,就和Java里封装的工具类一样
简单例子:

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
    <todo>
        <todo-title slot="todo-title" v-bind:temptitle="title" ></todo-title>
        <todo-items slot="todo-items" v-for="item in todoItems" v-bind:tempitem="item"></todo-items>
    </todo>
</div>



<script src="js/vue.js"></script>
<script>
    Vue.component('todo',{
        template: `
        <div>\
            <slot name="todo-title"></slot>
            <ul>
               <slot name="todo-items"></slot>
            </ul>
        </div>
        `
    });

    Vue.component('todo-title',{
        props:['temptitle'],
        template: `<div>{{temptitle}}</div>`
    });
    Vue.component('todo-items',{
        props:['tempitem'],
        template:'<li>{{tempitem}}</li>'
    });
    var vm=new Vue({
        el:"#app",
        data:{
            title: "学习的东西",
            todoItems: ['Java','Linux','C++']
        }
    });
</script>
</body>
</html>
上一篇:Vue 使用插槽(slot)


下一篇:TODO——多线程