Vue笔记 包含基础的指令 计算属性 指令 数据双向绑定原理

1.v-once:html不会再因为插值的改变改变,也就是之渲染一次,不会随着数据的改变而改变
2. v-for='itme in Array'
3.v-html="":如果插值中还有html标签,要用v-html指令来解析
4.v-text="":数据显示在页面,接受string
5.v-pre:把{{}}不做解析
6.v-cloak:cloak斗篷,再view解析前,有,解析后没有,防止页面闪动
7.v-bind:用于绑定一个或者多个属性值,像另外一个组件传递props值,还需要src、href动态绑定样式类,简写[:src='url']
v-bind:class='{key:value}'value可以是布尔值
 *绑定class的方式有两种 对象和数组  数组语法:class=['active','line']
8.绑定样式: v-bind:style={属性名:‘属性值’/变量}/v-bind:style=[元素->在data中定义元素为对象key:value
------------------------------------------------------------------------------------------------------------------
计算属性
1.compute:{}  在某些请况下比较好用,get:function()set function
methons和computed对比特点与优点:1.计算属性在多此调用只需要调用一次,如果计算结果不变,会将计算结果内部缓存,然后呢监听如果结果不变则继续直接
返回结果,不需要计算结果; methods却只要调用对次,效率低。
------------------------------------------------------------------------------------------------------------------
事件监听
1.v-on:简写:@click=’方法‘
传参问题:  *事件调用没有参数
        *事件定义时候,函数没有括号,但方法本省需要一个参数,这个时候,Vue默认将event传入到浏览器生成的事件
        *除了参数还要有event参数,abc event参数时,如果不加括号,默认将第一个参数为event。但是用括号传参数时,要用$event
2.v-on修饰符:
         *@click.stop组织冒泡==event.stopPropagation()
         *@click.prevent()==event.preventDefault()
         *@keyup监听所有案件,keyup.enter监听回车。
         *@click.once:事件只能触发一次
------------------------------------------------------------------------------------------------------------------
条件判断:v-if:布尔:决定当前节点是否需要被渲染出来
v-if和v-else
问题描述:在切换输入类型时,原先的input内容依然存在?解释:vue在进行DOM渲染时,由于VUE从性能的角度考虑,会尽可能的复用已经存在元素,而不是重
新渲染  解决:如果不希望input出现重复的问题,可以给input加key,如果key不同,他就不会复用。
虚拟Dom:先将dom节点缓存,是真是dom的映射,然后再将虚拟的dom渲染到浏览器
-------------------------------------------------------------------------------------------------------------------
v-show=true显示,
对比v-if和v-show:v-if再false时,包含v-if的元素就不会包含在dom中,而v-show只是增加display=none,只是不可见。所以在开发时,切换频率高用:
v-show,切换频率少的话,就用v-if
------------------------------------------------------------------------------------------------------------------
v-for:{item in Array} 遍历数组和对象
在使用v-for的时候最好加个key,因为1.和dom的diff算法有关,再虚拟DOM和真实的浏览器的对比,找到不同的,替换。如果没有key,那么就会把对应元素加入
并且依次修改后边的元素,这样子操作的元素就很多,效率很差。如果有key,先会取对比key,会一一对比,那么diff算法就可以通过key来找到目标节点,在正确
的位置插入新节点。即:key可以更加高效的更新DOM节点。
------------------------------------------------------------------------------------------------------------------
v-model 表单数据的双向绑定
原理:1.将数据的值给input的value  2.给input的绑定input事件,监听输入的值,并将这个值再方法中传入参数来赋值给我们的变量。也可以用于texteara
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../js/vue.js"> </script>
    <style>
        .active{
            color:red;
        }
    </style>
</head>
<body>
<div id="app">
    <span v-html="url">计数器</span>
    <button @click="up">+</button>
    <button @click="down">-</button>
    <img  v-bind:src="uimaUrl" alt="">
    <img  :src="uimaUrl" alt="">
    <h2 v-bind:class="{active:isactive,line:isline}">ss</h2>
    <button @click="change()">切换</button>
    <h2 :style="{color:color }">111111111</h2>
<!--    计算属性-->

    <h2>{{ totole}}</h2>
    <h2>{{ totole}}</h2> <h2>{{ totole}}</h2>
    <p v-if="s>90">优秀</p>
    <p v-if="s<90">量</p>
    <p>--------------------------------------------------------------------------------------------</p>
    <p>用户输入案例</p>
    <span v-if="isUser"><label for="username">用户账号 </label>
    <input type="text" id="username" placeholder="用户账号"></span>
    <span v-else><label for="email">用户邮箱 </label>
        <input type="text" id="email" placeholder="用户邮箱"></span>

    <button @click="change11($event)">切换</button>
    <input type="text" v-model="number">{{number}}

</div>
</body>

<script>
    // 1.v-once:html不会再因为插值的改变改变,也就是之渲染一次,不会随着数据的改变而改变
    // 2. v-for='itme in Array'
    // 3.v-html="":如果插值中还有html标签,要用v-html指令来解析
    // 4.v-text="":数据显示在页面,接受string
    // 5.v-pre:把{{}}不做解析
    // 6.v-cloak:cloak斗篷,再view解析前,有,解析后没有,防止页面闪动
    // 7.v-bind:用于绑定一个或者多个属性值,像另外一个组件传递props值,还需要src、href动态绑定样式类,简写[:src='url']
    // v-bind:class='{key:value}'value可以是布尔值
    //  *绑定class的方式有两种 对象和数组  数组语法:class=['active','line']
    // 8.绑定样式: v-bind:style={属性名:‘属性值’/变量}/v-bind:style=[元素->在data中定义元素为对象key:value
    // ------------------------------------------------------------------------------------------------------------------
    // 计算属性
    // 1.compute:{}  在某些请况下比较好用,get:function()set function
    // methons和computed对比特点与优点:1.计算属性在多此调用只需要调用一次,如果计算结果不变,会将计算结果内部缓存,然后呢监听如果结果不变则继续直接
    // 返回结果,不需要计算结果; methods却只要调用对次,效率低。
    // ------------------------------------------------------------------------------------------------------------------
    // 事件监听
    // 1.v-on:简写:@click=’方法‘
    // 传参问题:  *事件调用没有参数
    //         *事件定义时候,函数没有括号,但方法本省需要一个参数,这个时候,Vue默认将event传入到浏览器生成的事件
    //         *除了参数还要有event参数,abc event参数时,如果不加括号,默认将第一个参数为event。但是用括号传参数时,要用$event
    // 2.v-on修饰符:
    //          *@click.stop组织冒泡==event.stopPropagation()
    //          *@click.prevent()==event.preventDefault()
    //          *@keyup监听所有案件,keyup.enter监听回车。
    //          *@click.once:事件只能触发一次
    // ------------------------------------------------------------------------------------------------------------------
    // 条件判断:v-if:布尔:决定当前节点是否需要被渲染出来
    // v-if和v-else
    // 问题描述:在切换输入类型时,原先的input内容依然存在?解释:vue在进行DOM渲染时,由于VUE从性能的角度考虑,会尽可能的复用已经存在元素,而不是重
    // 新渲染  解决:如果不希望input出现重复的问题,可以给input加key,如果key不同,他就不会复用。
    // 虚拟Dom:先将dom节点缓存,是真是dom的映射,然后再将虚拟的dom渲染到浏览器
    // -------------------------------------------------------------------------------------------------------------------
    // v-show=true显示,
    // 对比v-if和v-show:v-if再false时,包含v-if的元素就不会包含在dom中,而v-show只是增加display=none,只是不可见。所以在开发时,切换频率高用:
    // v-show,切换频率少的话,就用v-if
    // ------------------------------------------------------------------------------------------------------------------
    // v-for:{item in Array} 遍历数组和对象
    // 在使用v-for的时候最好加个key,因为1.和dom的diff算法有关,再虚拟DOM和真实的浏览器的对比,找到不同的,替换。如果没有key,那么就会把对应元素加入
    // 并且依次修改后边的元素,这样子操作的元素就很多,效率很差。如果有key,先会取对比key,会一一对比,那么diff算法就可以通过key来找到目标节点,在正确
    // 的位置插入新节点。即:key可以更加高效的更新DOM节点。
    // ------------------------------------------------------------------------------------------------------------------
    // v-model 表单数据的双向绑定
    // 原理:1.将数据的值给input的value  2.给input的绑定input事件,监听输入的值,并将这个值再方法中传入参数来赋值给我们的变量。也可以用于texteara

    const app=new Vue({
        el:'#app',
        data:{
            isUser:true,
            s:70,
            res:'',
            message:'heelo',
            name:'maxuemimg',
            url:'<a href="#">dd</a>',
            isactive:true,
            isline:true,
            color:'red',
            uimaUrl:'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1956622302,1895131241&fm=26&gp=0.jpg',
            list:[{
                id:'1',
                name:'we'

            },{
                id:'1',
                name:'we'

            },{
                id:'1',
                name:'we'

            },{
                id:'1',
                name:'we'

            }],
            number:0,

        },
        methods:{
            up:function(){
                this.number++
            },
            down:function(){
               this.number--
            },
            change:function(){
                this.isactive=!this.isactive
                this.color='green'
            },
            change11(){
                this.isUser=!this.isUser
            }

        },
        computed: {
            funllName: {
               set:function(){


               },get:function(){

                }
            },
            totole: function () {
                for (let i of this.list) {
                    this.res += i.id

                }
                console.log(111)
                return this.res
            },
        }
    })
</script>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优价实习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值