首页 > 其他分享 >Vue2.0 浅学笔记

Vue2.0 浅学笔记

时间:2023-09-27 10:55:54浏览次数:39  
标签:vue return default 浅学 笔记 export 组件 data Vue2.0

Vue 是框架,也是生态。

1.Vue API风格

选项式(Vue2)

组合式(Vue3)

2.入门

node.js 版本大于15

3.创建项目

创建项目

npm init vue@latest

开发环境

VScode +Volar

4.基本语法

1.文本插值

仅能使用单一表达式

使用JavaScript表达式
每个绑定仅支持单一表达式,也就是一段能够被求值的JavaScript 代码。一个简单的判断方法是是否可以合法地写在秋天后面

<template>
<h3>模板语法</h3>
<p>{{msg}}</p>
<p>{{number+1}}</p>
<p>{{ok ? "yes" :'no'}}</p>
<p>{{messge.split('').reverse().join()}}</p>
</template>
<script>
    
export default {
  data() {
      return {
        'msg':'123木头人',
        'number':10,
        'ok': true,
        'messge':'大家好'
      }
  }
}

</script>



2.渲染原始html

双大括号将会将数据插值为纯文本,而不是 HTML。若想插入 HTML,你需要使用 html 指令

<template>
<h3>模板语法</h3>
<p v-html="rowhtml"></p>
</template>


<script>

export default {
  data() {
      return {
        'rowhtml':'<a href="www.baidu.com">阿辉啊</a>'
      }
  }
}

</script>



3.属性绑定

v-bind 指令指示 Vue 将元素的 d attribute 与组件的 dynamid 属性保持一致。如果绑定的值是 nul 或者undefined ,那么该 attribute 将会从染的元素上移除

<template>
    <div v-bind:id="ids" v-bind:class="msg">test</div>
</template>


<script>
  export default {
    data(){
      return{
        'msg':"active",
        'ids':"appClass"
      }
    }
  }
</script>

<style>
.appClass{
  color: aqua;
}
</style>



简写
因为 v-bind 非常常用,我们提供了特定的简写语法

<div :id="dynamicId”:class="dynamicclass"></div>

布尔

 <button :disabled="a">Button</button>
 
 
 <script>
  export default {
    data(){
      return{
        'msg':"active",
        'ids':"appClass",
        'a':true
      }
    }
  }
</script>

对象

<div :class="obj.name"></div>

<script>
  export default {
    data(){
      return{
        'msg':"active",
        'ids':"appClass",
        'a':true,
        'obj':{
          'name':'xiaohui'
        }
      }
    }
  }
</script>

多值绑定

<div v-bind="obj">9999</div>

<script>
  export default {
    data(){
      return{
        'msg':"active",
        'ids':"appClass",
        'a':true,
        'obj':{
          'name':'xiaohui'
        },
        'url':'www.baidu.com'
      }
    }
  }
</script>

4.条件渲染

v-if

<template>
    <h3>条件渲染</h3>
    <div v-if="flag">你能看见我吗</div>
</template>


<script>
  export default {
    data(){
      return{
        'flag':false
      }
    }
  }
</script>


v-else

<template>
    <h3>条件渲染</h3>
    <div v-if="flag">你能看见我吗</div>
    <div v-else>那你看看我</div>
</template>


<script>
  export default {
    data(){
      return{
        'flag': true
      }
    }
  }
</script>




v-else-if

<template>
    <h3>条件渲染</h3>
    <div v-if="flag">你能看见我吗</div>
    <div v-else>那你看看我</div>
    <div v-if="type=='A'">A</div>
    <div v-else-if="type==B">B</div>
    <div v-else>C</div>

</template>


<script>
  export default {
    data(){
      return{
        'flag': true,
        'type':'A'
      }
    }
  }
</script>




v-show

<template>
    <h3>条件渲染</h3>
    <div v-show="flag">v-show</div>
</template>


<script>
  export default {
    data(){
      return{
        'flag': true,
        'type':'A'
      }
    }
  }
</script>

v-if VS v-show

v 是“真实的“按条件染,因为它确保了在切换时,条件区块内的事件监听器和子组件都会被销毁与重建。
v 也是惰性的: 如果在初次染时条件值为 false,则不会做任何事。条件区块只有当条件首次变为 true 时才被渲染。

相比之下,v-show 简单许多,元素无论初始条件如何,始终会被染,只有 CSS dsplay 属性会被切换,总的来说,v-if有更高的切换开销,而 show 有更高的初始染开销。

因此,如果需要频繁切换,则使用show 较好;如果在运行时绑定条件很少改变,则 v-if会更合适

5.列表渲染

我们可以使用 v-for 指令基于一个数组来染一个列表。v-for 指令的值需要使用 item in items 形式的特殊语法其中 items 是源数据的数组,而 item 是选代项的别名

<template>
    <h3>列表渲染</h3>
    <p v-for="i in names">{{i}}</p>

    <div v-for="i in res">
        <p>{{i.title}}</p>
        <img :src="i.id" alt="1233444">
    </div>
</template>

<script>
    export default {
        data() {
            return {
                'names':[123,456,789],
                'res':[
                    {'id':'https://pic.rmb.bdstatic.com/bjh/down/96114dba7e6715f344fb6d39225d6ad5.jpeg',"title":"title111"},
                    {'id':2,'title':"title22"}
                ]
            }
        }
    }
</script>
    <p  v-for="i of names">{{i}}</p>
<template>
    <h3>列表渲染</h3>
    <p v-for="i in names">{{i}}</p>

    <div v-for="i in res">
        <p>{{i.title}}</p>
        <img :src="i.id" alt="1233444">
    </div>
    <p>index 渲染</p>
    <div v-for="(i,index) in names">
        <p>{{index}}</p>
    </div>
    <p>i of names</p>
    <p  v-for="i of names">{{i}}</p>
    <p>遍历对象所有属性</p>
    <p v-for="(value,key,index) of res">{{ value.title }}--{{key}}--{{index}}</p>
</template>

<script>
    export default {
        data() {
            return {
                'names':[123,456,789],
                'res':[
                    {'id':'https://pic.rmb.bdstatic.com/bjh/down/96114dba7e6715f344fb6d39225d6ad5.jpeg',"title":"title111"},
                    {'id':2,'title':"title22"}
                ]
            }
        }
    }
</script>

6.通过key值管理状态

​ Vue 默认按照“就地更新”的策略来更新通过 4o 染的元素列表当数据项的顺序改变时,Vue 不会随之移动 DOM 元素的顺序,而是就地更新每个元素,确保它们在原本指定的索引位置上渲染。
​ 为了给 Vue 一个提示,以便它可以跟踪每个节点的标识,从而重用和重新排序现有的元素你需要为每个元素对应的块提供一个唯一的 key attribute:

<template>
    <h3>Key 属性</h3>
    <p v-for="(i,index) in names" :key="index">{{i}}</p>
</template>

<script>
    export default{
        data(){
            return {
                names:[12,343454,5464]
            }

        }
    }
</script>

温馨提示
key 在这里是一个通过 v-bind 绑定的特殊 attribute推荐在任何可行的时候为 v-for 提供一个 key attribute绑定的值期望是一个基础类型的值,例如字符串或 number 类型key

7.事件处理

我们可以使用 v-on 指令(简写为 @)来监听 DOM 事件,并在事件触发时执行对应的JavaScript。用法

标签:vue,return,default,浅学,笔记,export,组件,data,Vue2.0
From: https://www.cnblogs.com/z-x-h/p/17732166.html

相关文章

  • EMQX学习笔记:命令行工具
    本文更新于2023-02-28,使用EMQX4.4.3。目录emqxemqx_ctlemqx官方文档:https://www.emqx.io/docs/zh/v4.4/getting-started/command-line.htmlemqxconsole:控制台模式。emqxrestart:重启EMQX。emqxstart:启动EMQX。emqx_ctl官方文档:https://www.emqx.io/docs/zh/v4.4/adva......
  • MMU复习--Apple的学习笔记
    一,前言以前看过MMU,因为这是单片机OS中没有的,当时我记得理解的不是很清晰,包括MMU中哪部分是硬件的,哪部分是软件的都没有太搞清楚。由于看了一个自己写linux操作系统的视频,里面有介绍MMU,且演示了虚拟地址和物理地址的转换,此时我才深刻的理解了,所以在看qemu源码的内存管理前,我先复习......
  • MMU复习--Apple的学习笔记
    一,前言以前看过MMU,因为这是单片机OS中没有的,当时我记得理解的不是很清晰,包括MMU中哪部分是硬件的,哪部分是软件的都没有太搞清楚。由于看了一个自己写linux操作系统的视频,里面有介绍MMU,且演示了虚拟地址和物理地址的转换,此时我才深刻的理解了,所以在看qemu源码的内存管理前,我先复习下......
  • 《Java编程思想第四版》学习笔记31--关于Externalizable
    //:Blip3.java//Reconstructinganexternalizableobjectimportjava.io.*;importjava.util.*;classBlip3implementsExternalizable{inti;Strings;//NoinitializationpublicBlip3(){System.out.println("Blip3Constructor");//s,inoti......
  • JMockit学习笔记
    1基本概念1.1常用注解@Mocked:被修饰的对象将会被Mock,对应的类和实例都会受影响(同一个测试用例中)@Injectable:仅Mock被修饰的对象@Capturing:可以mock接口以及其所有的实现类@Mock:MockUp模式中,指定被Fake的方法1.2常用的类Expectations:期望,指定的方法必须被调用StrictExpectati......
  • k8s笔记15
    摘要:CephOSDStatusoutdown;k8s笔记1(知识图谱,添加节点,ceph存储)_ATCtoK8s空管智能运维的技术博客_51CTO博客【ceph】cephOSD状态及常用命令-bdy-博客园(cnblogs.com)ceph集群磁盘故障,更换磁盘流程-腾讯云开发者社区-腾讯云(tencent.com)1、CephDashboard的Cluster>>OSD......
  • 动态规划——状压DP 学习笔记
    动态规划——状压DP学习笔记引入前置知识:位运算动态规划的过程是随着阶段的增长,在每个状态维度上不断扩展的。在任意时刻,已经求出最优解的状态与尚未求出最优解的状态在各维度上的分界点组成了DP扩展的“轮廓”。对于某些问题,我们需要在动态规划的“状态”中记录一个集合......
  • Linux的双链表复习—Apple的学习笔记
    一,前言   今天想把linux的双链表base代码拿来单片机用,于是看了下,结果有点混乱了。那么就画了个链表变化图,且做了实验进行巩固。二,分析链表头插方法主要是root然后添加t1,然后添加t2。那么链表的变化是RootRoot->t1Root->t2->t1如下图,R代表root头节点,1代表t1节点,2代表t2节点。......
  • 九月份《程序员修炼之道:从小工到专家》读书笔记1
    《程序员修炼之道:从小工到专家》是一本非常受欢迎的计算机科学类书籍,作者AndrewHunt和DavidThomas通过通俗易懂的语言和生动的案例,向读者介绍了如何成为一名优秀的程序员。作为一名大二学生,我阅读了这本书,并从中受益匪浅。首先,书中强调了编程中的实践和实证。它教导我们不仅仅要......
  • 九月份《程序员修炼之道:从小工到专家》读书笔记2
    《程序员修炼之道:从小工到专家》是一本极具启发性的计算机科学类书籍,对于像我这样的大二学生来说,阅读这本书是一次学习和成长的机会。作者AndrewHunt和DavidThomas通过书中的经验分享和实践指南,为我们展示了成为一名卓越程序员的道路。首先,本书强调了编程中的基本原则和方法。作......