liupengpo

306 经验值

<tasks-app list="{ $tasks }"></tasks-app> 就是绑定往list里传值,而{ $tasks }是后台处理过的数据

就当笔记吧:
我用Jsp模拟了一个List,Vue版本是2.5.16,实现过程中有个地方需要说明下:
1.直接按照视频里用created: function(){this.list=JSON.parse(this.list)}会报警告信息:Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "list"。意思是说避免直接修改prop,因为其值会在父组件重新渲染时被覆盖,相关逻辑应使用基于该prop值的data或computed实现。
可以改为:data: function () {return {mutableList: JSON.parse(this.list)}
或者:computed: {listJson: function(){return JSON.parse(this.list);}
我找到了官方文档说明的链接如下:https://cn.vuejs.org/v2/guide/migration.html#%E4%BF%AE%E6%94%B9-Props-%E5%BC%83%E7%94%A8

deleteTask: function (task) {

                //this.list.$remove(task) //vue2.0之后移除了remove()函数
                //Vue2.5第一种写法
                //var index = this.list.indexOf(task)
                //this.list.splice(index,1)
                
                //Vue2.5第二种写法,但是第二种写法没弄明白为什么???
                this.list.splice(task,1);
            }

请问各位:为什么Vue版本:2.5.16里面,我直接把test放进去:this.list.splice(task,1);这样也能正常删除呢????

有个问题:为什么level:'普通会员' ,而判断的时候level 会大于100呢?

做了个测试:
<style type="text/css">

    .btColorGreen{ font-size: 36px; }
    .btColorRed{ font-size: 48px; }
</style>

//counter组件加sclass属性
<counter heading="Likes" color="green" sclass="btColorGreen"></counter>
//button按钮加v-bind:class="sclass"
<button @click="count += 1" v-bind:style="'background: '+color" v-bind:class="sclass">{ count }</button>
//注册组件时,加上sclass就可以实现props: ['heading','color','sclass'],

<button @click="count += 1" v-bind:style="'background: '+color">{ count }</button> 另外{ count }是两队大括号

这么说吧,当我写到style="backgroud:{color}"无效的时候,我就知道,Vue2.0又动了手脚,认真看完视频,过来看评论就知道为毛了,果然!谢谢!

submit {count} 改成 submit { count}