[暑假-边做边学版]Vue实战(1)

前端借助 console.log来定位BUG

1. 双向绑定 v-model是只能应用在表单元素(输入类元素), 说白了就是 都要有value值

v-on  可以简写成 @

reactive 可以翻译为"响应式"的意思

steInterval(() => {

}, 时间单位毫秒) //定时器函数

读取对象中的属性值 如果没有这个属性应该是 undefined 而不会报错

v-model:value ==> 可以简写成: v-model 

2. el和data的两种写法

el写法两种都可以

但是在组件库中, data只能用第二种函数式, 并且只能是普通函数

由Vue管理的函数, 一定不要写箭头函数, 一旦写了箭头函数, this就不再是Vue实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="./vue.js"></script>
</head>
<body>
  
 <div id="root">
    <h1>Hello, {{name}}</h1>
 </div>

 </body>
 <script type="text/javascript">

   new Vue({
        el:'#root', //el的第一种写法
        // data: {  //第一种写法  : 对象式
        //     name:'加油'
        // }
    // setTimeout(() => {
    //     x.$mount('#root')
    // }, 1000);
    // x.$mount('#root'); //el的第二种写法
    data:function() {   //data的第二种写法
        return {
            name:'加油'
        }
    } 
})

 </script>
</html>

3. 箭头函数没有自己的this, 它的this指向的是 window

4.Vue 借鉴了 MVVM模型

5.回顾 object.defineProperty

Invoke(映射) property(属性) getter

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./vue.js"></script>
</head>
<body>
    <script type="text/javascript">
        Vue.config.productionTip = false;
        let number = 18;
        let person = {
            name:'张三',
            sex:'男'
        }
        
        Object.defineProperty(person, 'age', {
            // value:18,
            // enumerable:true,  //控制属性是否可以枚举, 默认值是false
            // writable:true,   // 控制属性是否可以被修改, 默认值是false
            // configurable:true // 控制属性是否可以被删除, 默认值是false
       
    
        // console.log(person);
            // 当有人读取person的age属性时, get函数(getter)就会被调用, 且返回值就是age的值
        get(){
            console.log('读取age属性')
            return number
        },
        // 当有人修改person的age属性时, set函数(setter)就会被调用, 且会受到修改的具体值
        set(value){
            console.log('有人修改了age属性, 且值是', value)
            number = value
        }
    })
    </script>    
</body>
</html>

6. 数据代理:通过一个对象代理 对另一个对象中属性的操作(读或者写)

简单的数据代理:

        

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./vue.js"></script>
</head>
<body>
    <!-- 简单的数据代理 -->
    <script type="text/javascript">
        Vue.config.productionTip = false;
      
        let obj = {x:100};
        let obj2 = {y:200};

        Object.defineProperty(obj2, 'x', {
            get() {
                return obj.x
            },
            set(value) {
                obj.x = value
            }
        })

    </script>    
</body>
</html>

7. 事件回调

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./vue.js"></script>
</head>
<body>
    
    <div id="root">
        <h2>欢迎来到{{name}}学习</h2>
        <button @click="showInfo(888, $event)">点我提示信息</button>
    </div>
    
</body>

    <script type="text/javascript">
        Vue.config.productionTip = false;
    
        new Vue({
            el:'#root',
            data: {
                name:'不屈的世界'
            },
            methods: {
                showInfo(number, event) {
                    console.log(number, event);
                }
            }

        })
    </script>    
</html>

8.事件修饰符

其中的前三个要牢记

9.计算属性: 是一个全新的属性

10.计算属性是自动被调用了

11.data中配置的数据 methods中配置的方法 computed配置的计算属性

12.监视属性:

13. 深度监视

 

14. watch(侦听属性) 与 computed 二者使用时的区别:

                

15. 条件渲染:

v-show="false"底层实现是 display:none;

 data中的值被改变, 模板则需要重新解析

16.列表渲染

17. key

18.什么叫做响应式?

就是数据改变, 页面也跟着改变 叫做响应式

19.回顾对数组处理的方法(影响原数组):

push (向一个数组的后面新增元素用)

pop(删除最后一个元素)

shift(删除第一个元素)

unshift(向前面加一个元素)

splice(在数组的指定位置删除或者插入和修改一个元素)

sort(对数组进行一个排序)

reverse(反转一个数组)

20.Vue对数组的监测:

                其实是依靠包装数组身上的,常用的修改数组的方法实现的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值