vue2基础语法01——基础语法使用了解

news2024/11/28 16:29:37

vue2基础语法01——基础语法使用了解

  • 1. vue模板语法
    • 1.1 插值语法
    • 1.2 指令语法
    • 1.3 简单测试完整代码
  • 2. vue中各选项使用(简单说几个)
    • 2.1 el选项
    • 2.2 data选项
      • 2.2.1 简述
      • 2.2.2 data选项的两种类型
      • 2.2.3 注意(限制)
      • 2.2.4 更多了解参考
    • 2.3 计算属性computed + methods
  • 3. 指令语法
    • 3.1 指令简介
      • 3.1.1 简介+简单例子
      • 3.1.2 注意
    • 3.2 指令参数
      • 3.2.1 静态参数
      • 3.2.2 动态参数
      • 3.2.2 无参例子
    • 3.3 指令修饰符
  • 4. 常用指令
    • 4.1 v-model指令
    • 4.2 v-once 指令
    • 4.3 v-for指令
    • 4.X 更多指令(参考官网)

1. vue模板语法

1.1 插值语法

  • 简述:
    Vue.js 中的插值语法是指双大括号语法 {{}},用于绑定数据到视图中(用于解析标签体内容)。
    语法:{{js表达式}} ,可以直接读取到data中的所有属性。
  • 例如:
     <h2>{{petZooAddress}}</h2>
     <hr>
     <h3>狗狗姓名:{{dog.dogName}}</h3>
    

1.2 指令语法

  • 用于解析标签(包括:标签属性、标签体内容、绑定事件等很多)
  • 例如:
    <input name="playGames" v-bind:value="playGames.toUpperCase()"/>
    

1.3 简单测试完整代码

  • 如下:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
    	<script type="text/javascript" src="../js/vue.js"></script>
    
        <!-- 准备好一个容器 -->
        <div id="root">
            <!-- 1. 插值语法 
                    1.1 用于解析标签体内容
                    1.2 语法:{{js表达式}} ,可以直接读取到data中的所有属性。
            -->
            <h2>{{petZooName}}</h2>
            <h2>{{petZooAddress}}</h2>
    
            <hr>
            <h3>狗狗姓名:{{dog.dogName}}</h3>
            <h3>狗狗性别:{{dog.dogSex}}</h3>
            <h3>狗狗年龄:{{dog.dogAge}}</h3>
    
            <hr>
            <h3>小猫姓名:{{cat.catName}}</h3>
            <h3>小猫性别:{{cat.catSex}}</h3>
            <h3>小猫年龄:{{cat.catAge}}</h3>
            <hr>
            <h3>当前时间:{{Date.now()}}</h3>
            <h3>随意js表达式-计算:{{1+1}}</h3>
    
            <!-- 2. 指令语法 
                    2.1 用于解析标签(包括:标签属性、标签体内容、绑定事件等很多)
            -->
            <hr>
            <input name="playGames" v-bind:value="playGames.toUpperCase()"/>
        </div>
    
        <script>
            new Vue({
                el:"#root",
                data:{
                    petZooName:'天津不凡宠物中心',
                    petZooAddress:'天津西青区',
                    playGames:'ball',
                    dog:{
                        dogName:'麦兜',
                        dogSex:'女',
                        dogAge:3
                    },
                    cat:{
                        catName:'大鱼',
                        catSex:'男',
                        catAge:5
                    }
                }
            });
        </script>
    </body>
    </html>
    
    在这里插入图片描述

2. vue中各选项使用(简单说几个)

2.1 el选项

  • 在Vue中,el选项用于指定 Vue 实例需要挂载到的 DOM 元素。当 Vue 实例被创建时,会搜索 el 选项指定的元素,然后把 Vue 实例的模板渲染到这个元素中。

    el可以是一个 CSS 选择器字符串,也可以是一个 HTMLElement。当el是一个字符串时,Vue 会通过document.querySelector()方法去查找对应的元素。

  • 如下例子是将Vue实例挂载到id为dog的div元素上,这样,Vue会自动搜索页面上id为dog的元素,并将其与该Vue实例绑定。
    在这里插入图片描述

  • 所以,el可以配置如下:

    el:"#dog",  // 通常写法
    // el: document.getElementById("dog"),  //一般不这么写,完全没必要
    

2.2 data选项

2.2.1 简述

  • 可以将data选项理解为组件内部的数据源,用于存储需要响应式渲染的数据。当data发生改变时,Vue会自动重新渲染组件,并且将组件中使用到的对应数据更新。

2.2.2 data选项的两种类型

  • 返回对象,如下:

    <script>
        new Vue({
            el:"#root",
            data:{
                petZooName:'天津不凡宠物中心',
                petZooAddress:'天津西青区',
                playGames:'ball',
                dog:{
                    dogName:'麦兜',
                    dogSex:'女',
                    dogAge:3
                },
                cat:{
                    catName:'大鱼',
                    catSex:'男',
                    catAge:5
                }
            }
        });
    </script>
    
  • 返回函数:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
    	<script type="text/javascript" src="../js/vue.js"></script>
    
        <!-- 准备好一个容器 -->
        <div id="dog">
    
            <h3>狗狗姓名:{{dogName}}</h3>
            <h3>狗狗性别:{{dogSex}}</h3>
            <h3>狗狗年龄:{{dogAge}}</h3>
    
        </div>
    
        <script>
            const vm = new Vue({
                el:"#dog",
                data:function(){
                    return{
                        dogName:'麦兜',
                        dogSex:'女',
                        dogAge:3
                    }
                }
            });
    
            console.log(vm.dogName);
            console.log(vm.$data.dogName);
        </script>
    </body>
    </html>
    

2.2.3 注意(限制)

  • 组件的定义只接受 function。
    在组件中,data必须是一个函数,函数返回一个对象。这样做的原因是为了避免组件之间共享同一实例造成的状态污染问题。因为每个组件都可以有自己独立的状态,通过data函数可以确保每个组件都有自己独立的数据源。

2.2.4 更多了解参考

  • 官网如下:
    https://v2.cn.vuejs.org/v2/api/#data.

2.3 计算属性computed + methods

  • 直接看官网怎么说:
    在这里插入图片描述
    在这里插入图片描述
  • 简单实用:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
    	<script type="text/javascript" src="../js/vue.js"></script>
    
        <div id="dog">
    
            <h3>狗狗姓名:{{dogName}}</h3>
            <h3>狗狗性别:{{dogSex}}</h3>
            <h3>狗狗年龄:{{dogAge}}</h3>
            <hr>
            <h3>计算属性dogInfo:{{dogInfo}}</h3>
            <hr>
            <h3>玩球次数:{{playTimes}}</h3>
            <button @click="plus">点我玩球次数+1</button>
    
        </div>
    
        <script>
            const vm = new Vue({
                el:"#dog",
                data:{
                    dogName:'麦兜',
                    dogSex:'女',
                    dogAge:3,
                    playTimes:1
                },
                computed:{
                    dogInfo:function(){
                        return this.dogName + "-" + this.dogSex + "-" + this.dogAge;
                    }
                },
                methods: {
                    plus: function () {
                        this.playTimes++   
                    }
                },
                // 其他选项……
            });
    
            console.log(vm.dogName);
            console.log(vm.$data.dogName);
        </script>
    </body>
    </html>
    
    在这里插入图片描述
  • 当然还有很多,其他更多属性后续介绍!

3. 指令语法

3.1 指令简介

3.1.1 简介+简单例子

  • Mustache 语法(插值语法)不能作用在 HTML attribute(标签属性等) 上,遇到这种情况应该相应的指令(如:v-bind 等指令)。
  • 简例如下:
    在这里插入图片描述
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <script type="text/javascript" src="../js/vue.js"></script>
    
        <div id="root">
            狗狗品种:<input type="text" value="边牧"/>   <br>
            狗狗姓名:<input type="text" v-bind:value="dogName"/>  <br>
    
            狗狗信息:<input type="text" v-bind:value="'边牧--' + dogName"/>  <br>
            指令中测试表达式:<input type="text" v-bind:value="'hello'.toUpperCase()"/>  <br>
    
            <button v-bind:disabled="isButtonDisabled_1">Button_1</button>   <br>
            <button v-bind:disabled="isButtonDisabled_2">Button_2</button>   <br>
        </div>
    
        <script>
            new Vue({
                el: "#root",
                data:{
                    dogName: "麦兜",
                    isButtonDisabled_1: true,
                    isButtonDisabled_2: false,
                }
            })
        </script>
    </body>
    </html>
    

3.1.2 注意

  • 对于布尔 attribute (它们只要存在就意味着值为 true),v-bind 工作起来略有不同,如果 isButtonDisabled 的值是 null、undefined 或 false,则 disabled attribute 甚至不会被包含在渲染出来的 <button> 元素中
  • 上面例子的渲染效果如下:
    在这里插入图片描述

3.2 指令参数

3.2.1 静态参数

  • 一些指令能够接收一个“参数”,在指令名称之后以冒号表示。例如,v-bind 指令可以用于响应式地更新 HTML attribute。
    • 如下例子href 是参数,告知 v-bind 指令将该元素的 href attribute 与表达式 shouwDogUrl 的值绑定;
      同理 下面的value 也是参数,与表达式 dogName 与 dogSayHello.toUpperCase()的值分别绑定。
      v-on 指令,它用于监听 DOM 事件,参数是监听的事件名。
  • 例子如下:
    在这里插入图片描述
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <script type="text/javascript" src="../js/vue.js"></script>
    
        <div id="root">
    
            展示狗狗信息的网址:<a v-bind:href="shouwDogUrl">点击查看狗狗详细信息</a>  <br>
            狗狗品种:<input type="text" value="边牧"/>  <br>
            狗狗姓名:<input type="text" v-bind:value="dogName"/>  <br>
            狗狗打招呼:<input type="text" v-bind:value="dogSayHello.toUpperCase()"/>  <br>
            
        
            <h3>狗狗玩球次数:{{playTimes}}</h3>
            <button v-on:click="countPlayTimes_1">点击计算狗狗玩球次数_1</button>   <br><br>
            <button v-on:click="countPlayTimes_2">点击计算狗狗玩球次数_2</button>   
        </div>
    
        <script>
            new Vue({
                el: "#root",
                data:{
                    dogName: "麦兜",
                    dogSayHello: 'hello',
                    shouwDogUrl: 'https://www.csdn.net/',
                    playTimes: 1
                },
                methods: {
                    countPlayTimes_1(){
                        this.playTimes = this.playTimes + 1;
                    },
                    countPlayTimes_2: function(){
                        this.playTimes++;
                    }
                },
            })
        </script>
    </body>
    </html>
    

3.2.2 动态参数

  • 语法例子:
    <button v-on:[eventname]="countPlayTimes_1">点击计算狗狗玩球次数_1</button> 
    
  • 先看官网讲解:
    在这里插入图片描述
  • 再看测试例子:
    在这里插入图片描述
  • 注意事项:
    上面的动态参数eventname,只能是小写字母,不能写成驼峰,否则报错,不知道是不是没有用脚手架的原因!

3.2.2 无参例子

  • 如下:
    在这里插入图片描述
    <body>
        <script type="text/javascript" src="../js/vue.js"></script>
    
        <div id="root">
    
            <p v-if="seeFlag">能看到我吗?</p>
            <p v-if="seeFlag_2">这个不让看到</p>
        </div>
    
        <script>
            new Vue({
                el: "#root",
                data:{
                    seeFlag: true,
                    seeFlag_2: false
                }
            })
        </script>
    </body>
    

3.3 指令修饰符

4. 常用指令

4.1 v-model指令

  • 在表单控件或者组件上创建双向绑定。
    在这里插入图片描述

4.2 v-once 指令

  • 只渲染元素和组件一次,如下:
    在这里插入图片描述

4.3 v-for指令

  • 简单使用:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <script type="text/javascript" src="../js/vue.js"></script>
        <div id="root">
            <div v-for="item in items_1">
                {{item}}
            </div>
    
            <hr>
            <div v-for="item in items_2">
                {{item.text}}
            </div>
    
            <hr>
            <div v-for="item in sortedItems_3" >
                {{item}}
            </div>
    
            <hr>
            <li v-for="(d,index) in dogs" :key="index">
                {{d.dogNum}}-{{d.dogName}}-{{d.dogAge}}--{{index}}
            </li>
    
            <hr>
            <li v-for="(d,index) in dogs" :key="d.dogNum">
                {{d.dogNum}}-{{d.dogName}}-{{d.dogAge}}--{{index}}
            </li>
    
            <hr>
            <li v-for="value in object">
                {{ value }}
            </li>
    
            <br>
            <div v-for="(author, title) in object">
                {{ author }} ---- {{ title }}
            </div>
    
        </div>
    
        <script>
            new Vue({
                el:"#root",
                data:{
                    items_1: ['a','b','c'],
                    items_2: {
                        i_1: {text:'white'},
                        i_2: {text:'black'},
                        i_3: {text:'yellow'},
                    },
                    items_3: [1,10,6,2,8],
                    dogs:[
                        {dogNum:"A1001",dogName:"麦兜",dogAge:3},
                        {dogNum:"A1002",dogName:"泡泡",dogAge:5},
                        {dogNum:"A1003",dogName:"可乐",dogAge:2},
                    ],
                    object: {
                        title: 'How to do lists in Vue',
                        author: 'Jane Doe',
                        publishedAt: '2016-04-10'
                    }
                },
                computed:{
                    sortedItems_3() {
                        return this.items_3.sort((a, b) => a - b);
                    },
                }
            })
        </script>
    </body>
    </html>
    
    在这里插入图片描述
  • 参考官网:
    https://v2.cn.vuejs.org/v2/api/#v-for.

4.X 更多指令(参考官网)

  • 关于常用的v-bind、v-on上面我们有简单使用过了,但是那只是冰山一角,更多可去官网查看,关于v-bind绑定class的、绑定style的等等多种案例都有,v-on也是官网很详细。
  • 官网例子真的太详细、各种情况都有(包括修饰符的使用),所以更多了解请参考官网:
    https://v2.cn.vuejs.org/v2/api/#%E6%8C%87%E4%BB%A4.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1659176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA快速工具代码集

一、前言 在开发过程中&#xff0c;特别是维护老系统&#xff0c;有时候想使用的工具类却使用不了。又要重新造轮子。所以准备点工具类代码是必须的&#xff0c;无奈之举。 二、JSON数据转换 String content cdfQhOrderResModel.getContent(); List<CdfQH…

Python 数据库操作- sqlite3 模块

Python sqlite3 模块 1. 安装 SQLite3 可使用 sqlite3 模块与 Python 进行集成。sqlite3 模块是由 Gerhard Haring 编写的。它提供了一个与 PEP 249 描述的 DB-API 2.0 规范兼容的 SQL 接口。用户不需要单独安装该模块&#xff0c;因为 Python 2.5.x 以上版本默认自带了该模块…

在uniapp里面使用 mp-html 并且开启 latex 功能

在uniapp里面使用 mp-html 并且开启 latex 功能 默认情况下 mp-html 是不会开启 latex 功能的, 如果需要开启 latex 功能是需要到代码操作拉取代码自行打包的。 这里说一下 mp-html 里面的 latex 功能是由 https://github.com/rojer95/katex-mini 提供的技术实现&#xff0c;…

【Spark】Spark编程体验,RDD转换算子、执行算子操作(六)

Spark编程体验 项目依赖管理 <dependencies><dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>2.12.10</version></dependency><dependency><groupId>org.ap…

通过 Java 操作 redis -- zset 有序集合基本命令

目录 使用命令 zadd&#xff0c;zrange 使用命令 zcard 使用命令 zrem 使用命令 zscore 使用命令 zrank 关于 redis zset 有序集合类型的相关命令推荐看Redis - Zset 有序集合 要想通过 Java 操作 redis&#xff0c;首先要连接上 redis 服务器&#xff0c;推荐看通过 Jav…

武汉凯迪正大—超声波探伤仪的主要功能

武汉凯迪正大超声波探伤仪的主要功能 高精度定量、定位&#xff0c;满足了较近和较远距离探伤的要求&#xff1b; 近场盲区小&#xff0c;满足了小管径、薄壁管探伤的要求&#xff1b; 自动校准&#xff1a;一键式自动校准&#xff0c;操作非常便捷&#xff0c;自动测试探头的…

基于springboot实现贸易行业crm系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现贸易行业crm系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于springboot的贸易行业crm系统的开发全过程。通过分析基于springboot的贸易行业crm系统管理的不足&#xff0c;创建…

element ui的无法关掉的提示弹框

使用element的$alert组件的属性把X去掉和确定按钮和取消按钮去掉&#xff1b; import { MessageBox } from element-ui; MessageBox.alert(AI功能已到期或暂未开启, 友情提示, {showClose: false,showCancelButton: false,showConfirmButton: false }); 如果在router的路由守…

华为ensp中BFD和OSPF联动(原理及配置命令)

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年5月6日20点26分 BFD通常指的是双向转发检测。BFD是一个旨在快速检测通信链路故障的网络协议&#xff0c;提供了低开销、短延迟的链路故障检测机制。它主要用于监测两个…

PCIe协议之-TLP路由基础

✨前言&#xff1a; 在PCI Express (PCIe) 技术中&#xff0c;数据包的路由方式对于确保信息能够高效、准确地传送至目标设备至关重要。PCIe定义了几种路由方式&#xff0c;主要有以下几种。 &#x1f31f;地址路由&#xff08;Address Based Routing&#xff09; 这是最基本…

hypertherm海宝EDGE控制器显示屏工控机维修

海宝工控机维修V3.0/4.0/5.0&#xff1b;hypertherm数控切割机系统MICRO EDGE系统显示屏维修&#xff1b; 美国hypertherm公司mirco edge数控系统技术标准如下&#xff1a; 1&#xff09; p4处理器 2&#xff09; 512mb内存 3&#xff09; 80g硬盘&#xff0c;1.44m内置软驱…

【连连国际注册/登录安全分析报告】

连连国际注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨…

解决VSCode中Debug和运行路径不一致

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 当尝试调试程序时&#xff0c;程序的运行路径与预期不符。这通常会导致程序无法正确读取文件或访问资源&#xff0c;从而影响调试过程。为了解决这个问题&#xff0c;可以在launch.json文件中配置CWD参数&#xff0c…

C语言学习初级阶段

文章目录 一、运算符与表达式1.1、运算符分类1.2、关系运算符与关系表达式2.1、逻辑运算符与逻辑表达式2.2、赋值运算符2.3、求字节运算符 二、选择、循环2.1、选择if-else讲解.2.1.1、关系表达式与逻辑表达式 2.2、while、for、continue、break讲解2.2.1、while循环2.2.2、for…

「PKUSC2018 星际穿越」Solution

题目传送门 [PKUSC2018] 星际穿越 简述题意 给定一张 n n n 个点的无向图和 q q q 次询问&#xff0c;每一个点 i i i 与 ∀ j ∈ [ l i , i − 1 ] \forall j \in [l_i , i -1] ∀j∈[li​,i−1] 都存在一条长度为 1 1 1 的无向边&#xff0c;每次询问给定 l i , r i…

DRF的三大认证

【 零 】一些注意事项 【1】如何使用视图类 #1 APIView -如果后续&#xff0c;写个接口&#xff0c;不需要用序列化类&#xff0c;不跟数据库打交道-发送短信接口&#xff0c;发送邮件接口#2 GenericAPIView-如果后续&#xff0c;写个接口&#xff0c;要做序列化或跟数据库打交…

数据结构复习指导之线索二叉树

文章目录 二叉树 考纲内容 复习提示 1.线索二叉树 1.1线索二叉树的基本概念 1.2中序线索二叉树的构造 1.3中序线索二叉树的遍历 1.4先序线索二叉树和后序线索二叉树 知识回顾 二叉树 考纲内容 &#xff08;一&#xff09;树的基本概念 &#xff08;二&#xff09;二叉…

酷柚易汛ERP源码部署/售后更新/搭建/上线维护

一款基于FastAdminThinkPHPLayui开发的ERP管理系统&#xff0c;帮助中小企业实现ERP管理规范化&#xff0c;此系统能为你解决五大方面的经营问题&#xff1a;1.采购管理 2.销售管理 3.仓库管理 4.资金管理 5.生产管理&#xff0c;适用于&#xff1a;服装鞋帽、化妆品、机械机电…

代码审计-PHP模型开发篇动态调试反序列化变量覆盖TP框架原生POP链

知识点 1、PHP审计-动态调试-变量覆盖 2、PHP审计-动态调试-原生反序列化 3、PHP审计-动态调试-框架反序列化PHP常见漏洞关键字 SQL注入&#xff1a; select insert update delete mysql_query mysqli等 文件上传&#xff1a; $_FILES&#xff0c;type"file"&…

人工智能驱动的设计工具的兴起:彻底改变创意产业

人工智能驱动的设计工具的兴起&#xff1a;彻底改变创意产业 概述 人工智能 (AI) 正在改变创意产业&#xff0c;设计也不例外。人工智能驱动的设计工具正在彻底改变设计师的工作方式&#xff0c;提供无与伦比的效率、创造力和创新水平。从生成图像和设计到自动化日常任务&…