vuejs的使用-组件

vue的使用:组件

组件就是vue实例中的配置项
配置项 el
var vm = new Vue({
                el: '#app',
            })
//el为一个挂载点,绑定一个DOM元素,相当于把DOM元素放到Vue实例中,可以使用通过指令,mustache语法来操作它

//另一种写法为
new Vue({

}).$mount("#app")
配置项data

data: {
    msg: 'hello vue.js',
    num: 10,
    str: 'I hate you ~~',
    arr: [ 1,2,3,4 ],
    obj: {
        id: 1,
        name: 'yyb',
        age: 18
    },
    json: [
        'aa',
        {
            id: 1,
            text: '睡觉'
        },
        {
            id: 2,
            text: '敲代码'
         }
    ]
}
//data用来存放数据,支持不同的数据类型,在别的配置项中使用必须要通过this关键字
//可以直接在指令或mustache语法中直接使用
配置项 methods

methods: {
//这里面存放的都是事件的处理程序
    add () {//添加data中属性的值
        this.json.push({
        id: 3,
        text: '打篮球'
        })
    },
notChange () {//修改data中属性的值
    // this.json[0] = '做作业'  不能实现响应式,因为没有触发setter,从而无法执行render函数
    // Vue.set(this.json,0,'做作业')
    //this.$set(this.json,0,'做作业')
}

数据的更新检测
  1. 在使用methods中的函数往往会对data中数组的数据进行操作,
    会出现没有实现响应式的情况,(console输出数据发现变化了,但视图没有变化),
    主要是data中数组的数据未检测到变化,没有触发setter函数,从而导致后续的render渲染函数未执行。

  2. 解决:使用会返回新数组的api或手动使用set函数

  push() pop() shift() unshift() splice() sort() reverse(),返回修改后的数组
//例:删除数组的所有内容 this.arr.splice(0,this.arr.length)

filter(), concat() 和 slice() ,map(),新数组替换旧数组

Vue.set(example1.items, indexOfItem, newValue)//手动调用set方法,
vm.items[indexOfItem] = newValue无法实现数组的修改。

computed 计算属性

//这里存放的也是方法,但是这个方法是有返回值的,并且方法名还可以当做一个变量(相当于直接在data里面定义的数据)来使用


changeJson () {
    return this.json.filter( item => {
        return item.id>1
    })
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值