动力节点老杜Vue笔记——Vue程序初体验

news2024/12/24 8:25:38

目录

一、Vue程序初体验

1.1 下载并安装vue.js

1.2 第一个Vue程序 

1.3  Vue的data配置项

1.4  Vue的template配置项 


一、Vue程序初体验

可以先不去了解Vue框架的发展历史、Vue框架有什么特点、Vue是谁开发的,对我们编写Vue程序起不到太大的作用,更何况现在说了一些特点之后,我们也没有办法彻底理解它,因此我们可以先学会用,使用一段时间之后,回头来熟悉一下Vue框架以及它的特点。只需要知道Vue是一个基于JavaScript(JS)实现的框架。要使用它就需要先拿到Vue的js文件。

1.1 下载并安装vue.js

 第一步:打开Vue2官网,点击下图所示的“起步”:

 第二步:继续点击下图所示的“安装”

 第三步:在“安装”页面向下滚动,直到看到下图所示位置:

第四步:点击开发版本,并下载,如下图所示: 

第五步:安装Vue:

使用script标签引入vue.js文件。就像这样:<script src=”xx/vue.js”></script>

1.2 第一个Vue程序 

集成开发环境使用VSCode,没有的可以安装一个

第一个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>第一个Vue程序</title>  
    <!-- 安装vue.js -->  
    <script src="../js/vue.js"></script>  
</head>  
<body>  
    <!-- 指定挂载位置 -->  
    <div id="app"></div>  
    <!-- vue程序 -->  
    <script>  
        // 第一步:创建Vue实例  
        const vm = new Vue({  
            template : '<h1>Hello Vue!</h1>'  
        })  
        // 第二步:将Vue实例挂载到指定位置  
        vm.$mount('#app')  
    </script>  
</body>  
</html>  

运行效果:

对第一个程序进行解释说明:

  1. 当使用script引入vue.js之后,Vue会被注册为一个全局变量。就像引入jQuery之后,jQuery也会被注册为一个全局变量一样。
  2. 我们必须new一个Vue实例,因为通过源码可以看到this的存在。
  3. Vue的构造方法参数是一个options配置对象。配置对象中有大量Vue预定义的配置。每一个配置项都是key:value结构。一个key:value就是一个Vue的配置项。
  4. template配置项:value是一个模板字符串。在这里编写符合Vue语法规则的代码(Vue有一套自己规定的语法规则)。写在这里的字符串会被Vue编译器进行编译,将其转换成浏览器能够识别的HTML代码。template称之为模板。
  5. Vue实例的$mount方法:这个方法完成挂载动作,将Vue实例挂载到指定位置。也就是说将Vue编译后的HTML代码渲染到页面的指定位置。注意:指定位置的元素被替换。
  6. ‘#app’的语法类似于CSS中的id选择器语法。表示将Vue实例挂载到id=’app’的元素位置。当然,如果编写原生JS也是可以的:vm.$mount(document.getElementById(‘app’))
  7. ‘#app’是id选择器,也可以使用其它选择器,例如类选择器:’.app’。类选择器可以匹配多个元素(位置),这个时候Vue只会选择第一个位置进行挂载(从上到下第一个)。

1.3  Vue的data配置项

观察第一个Vue程序,你会发现要完成这种功能,我们完全没有必要使用Vue,直接在body标签中编写以下代码即可: 

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>没必要使用Vue呀</title>  
</head>  
<body>  
    <h1>Hello Vue!</h1>  
</body>  
</html>  

在Vue中有一个data配置项,可以帮助动态的渲染页面代码如下:

<!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>Vue选项data</title>  
    <!-- 安装vue -->  
    <script src="../js/vue.js"></script>  
</head>  
<body>  
    <!-- 指定挂载位置 -->  
    <div id="app"></div>  
    <!-- vue代码 -->  
    <script>  
        new Vue({  
            data : {  
                message : 'Hello Vue!'  
            },  
            template : '<h1>{{message}}</h1>'  
        }).$mount('#app')  
    </script>  
</body>  
</html>  

运行结果如下:

对以上程序进行解释说明:

  1. data是Vue 实例的数据对象。并且这个对象必须是纯粹的对象 (含有零个或多个的 key/value 对)。
  2. {{message}}是Vue框架自己搞的一个语法,叫做插值语法(或者叫做胡子语法),可以从data中根据key来获取value,并且将value插入到对应的位置。
  3. data可以是以下几种情况,但不限于这几种情况:
    data : {  
      name : '老杜',  
      age : 18  
    }  
    //取值:  
    {{name}}  
    {{age}}  
      
    data : {  
      user : {  
        name : '老杜',  
        age : 18  
      }  
    }  
    //取值:  
    {{user.name}}  
    {{user.age}}  
      
    data : {  
      colors : ['红色', '黄色', '蓝色']  
    }  
    //取值:  
    {{colors[0]}}  
    {{colors[1]}}  
    {{colors[2]}}  
    

  4. 以上程序执行原理:Vue编译器对template进行编译,遇到胡子{{}}时从data中取数据,然后将取到的数据插到对应的位置。生成一段HTML代码,最终将HTML渲染到挂载位置,呈现。

  5. 当data发生改变时,template模板会被重新编译,重新渲染。

1.4  Vue的template配置项 

template只能有一个根元素。 请看如下代码: 

<!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>Vue选项template</title>  
    <!-- 安装vue -->  
    <script src="../js/vue.js"></script>  
</head>  
<body>  
    <!-- 指定挂载位置 -->  
    <div id="app"></div>  
    <!-- vue程序 -->  
    <script>  
        new Vue({  
            template : '<h1>{{message}}</h1><h1>{{name}}</h1>',  
            data : {  
                message : 'Hello Vue!',  
                name : '动力节点老杜'  
            }  
        }).$mount('#app')  
    </script>  
</body>  
</html>  

执行结果

控制台错误信息:组件模板应该只能包括一个根元素。 所以如果使用template的话,根元素只能有一个。 代码修改如下:

new Vue({  
    template : '<div><h1>{{message}}</h1><h1>{{name}}</h1></div>',  
    data : {  
        message : 'Hello Vue!',  
        name : '动力节点老杜'  
    }  
}).$mount('#app')

运行结果

template编译后进行渲染时会将挂载位置的元素替换。

template后面的代码如果需要换行的话,建议将代码写到``符号当中,不建议使用 + 进行字符串的拼接。 代码修改如下:

new Vue({  
    template : `  
        <div>  
            <h1>{{message}}</h1>  
            <h1>{{name}}</h1>  
        </div>  
    `,  
    data : {  
        message : 'Hello Vue!',  
        name : '动力节点老杜'  
    }  
}).$mount('#app')

运行结果

template配置项可以省略,将其直接编写到HTML代码当中。 代码如下:

<!-- 指定挂载位置 -->  
<div id="app">  
    <div>  
        <h1>{{message}}</h1>  
        <h1>{{name}}</h1>  
    </div>  
</div>  
<!-- vue程序 -->  
<script>  
    new Vue({  
        data : {  
            message : 'Hello Vue!',  
            name : '动力节点老杜'  
        }  
    }).$mount('#app')  
</script> 

运行结果

需要注意两点:
第一:这种方式不会产生像template那种的元素替换。
第二:虽然是直接写到HTML代码当中的,但以上程序中第3~6行已经不是HTML代码了,它是具有Vue语法特色的模板语句。这段内容在data发生改变后都是要重新编译的。

将Vue实例挂载时,也可以不用$mount方法,可以使用Vue的el配置项。 代码如下:

<!-- 指定挂载位置 -->  
<div id="app">  
    <div>  
        <h1>{{message}}</h1>  
        <h1>{{name}}</h1>  
    </div>  
</div>  
<!-- vue程序 -->  
<script>  
    new Vue({  
        data : {  
            message : 'Hello Vue!',  
            name : '动力节点老杜'  
        },  
        el : '#app'  
    })  
</script> 

 执行结果

 el是element单词的缩写,翻译为“元素”,el配置项主要是用来指定Vue实例关联的容器。也就是说Vue所管理的容器是哪个。

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

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

相关文章

计算机网络 实验六

⭐计网实验专栏&#xff0c;欢迎订阅与关注&#xff01; ★观前提示&#xff1a;本篇内容为计算机网络实验。内容可能会不符合每个人实验的要求&#xff0c;因此以下内容建议仅做思路参考。 一、实验目的 掌握以太网帧的格式及各字段的含义掌握IP包的组成格式及各字段的含义掌…

java中HashMap的使用

HashMap 键值对关系&#xff0c;值可以重复&#xff0c;可以实现多对一&#xff0c;可以查找重复元素 记录&#xff1a; 做算法遇到好多次了&#xff0c;就总结一下大概用法。 例如今天遇到的这个题&#xff1a; 寻找出现一次的数&#xff0c;那就使用哈希表来存储&#xf…

X射线吸收光谱知识点

1) 什么是XAS XAS是X-ray Absorbtion Spectra的缩写&#xff0c;全称为X射线吸收光谱。X射线透过样品后&#xff0c;其强度发生衰减且其衰减程度与材料结构、组成有关。这种研究透射强度I与入射X射线强度Io之间的关系&#xff0c;称为X射线吸收光谱;由于其透射光强与元素、原子…

express项目的创建

前言 前端开发者若要进行后端开发&#xff0c;大多都会选择node.js&#xff0c;在node生态下是有大量框架的&#xff0c;其中最受新手喜爱的便是老牌的express.js&#xff0c;接下来我们就从零创建一个express项目。 安装node 在这里&#xff1a;https://nodejs.org/dist/v16…

《Linux0.11源码解读》理解(一)

计算机启动时, 内存(RAM)没有任何东西, 自然也无法跑操作系统. 但是可以执行固化在ROM里面的BIOS程序. 在按下电源键的一刻. CPU的cs和ip寄存器硬件被设置为0xf000和0xfff0, 于是cs:ip也就指向0xffff0这个地址, 而这个地址正是指向了ROM的BIOS范围(这里是0xfe000~0xfffff, 20根…

2023 减少人工标注,获取大量数据的能力

关键词&#xff1a; 零样本泛化能力模型 半监督 减少人工标注成本&#xff1a; 1、CVPR 2023 | 单阶段半监督目标检测SOTA&#xff1a;ARSL https://zhuanlan.zhihu.com/p/620076458 2、CVPR 2023 | 标注500类&#xff0c;检测7000类&#xff01;清华大学等提出通用目标检测算…

Java版本工程行业管理系统源码-专业的工程管理软件-提供一站式服务

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示1…

java Excel清除表格条件格式规则

© Ptw-cwl 目录 文章目录 目录Excel清除表格条件格式规则1.开始 -> 条件格式2.条件格式 -> 清除规则3.管理规则也能删除 代码报java.lang.IllegalArgumentException: Specified CF index 43 is outside the allowable range (0..42)如何解决源码 Excel清除表格条件…

初识Spring框架

文章目录 IOC &#xff08;Inverse of Control 控制反转&#xff09;DI &#xff08;Dependency Injection 依赖注入&#xff09;入门案例 --- 组件、注册第一步、引入依赖第二步、编写配置文件 ---xml从官网查看 xml 格式 然后保存为模板 注册组件 ---在配置文件 xml 文件中写…

c/c++:visual studio的代码快捷键,VS设置自定义默认代码,使用快捷键

c&#xff1a; 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;此时学会c的话&#xff0c; 我所知道的周边的会c的同学&#xff0c;可手握10多个offer&#xff0c;随心所欲&#xff0c;而找啥算法岗的&#xff0c;基本gg 提…

文心一言作画:有点东西但不多...

随着ChatGPT的持续火热 与AI领域有关的话题 是越来越热闹了 前几天百度发布 “文心一言” 自然也成了网友们 重点关注的对象 不过大家的目光主要还是集中在 文心一言的绘画功能上 在人工智能加成下出来的画面 一个比一个绝 成功颠覆 大家对绘画的认知 生意火爆的商铺…

ATTCK v12版本战术介绍——防御规避(三)

一、引言 在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权战术、防御规避部分理论知识及实战研究&#xff0c;本期我们为大家介绍ATT&CK 14项战术中防御规避战术技术第13-18种技术&#xff0c;后续会介绍防御规避其他子技术&#xff0…

跨网摆渡系统如何实现数据安全传输,从而驱动业务流转?

在这个数据驱动的时代&#xff0c;一次数据泄露就可能影响到数亿甚至数十亿人。数字化转型进一步推动了数据的移动&#xff0c;而随着攻击者加速利用日常生活中的数据依赖性&#xff0c;数据泄露也正随之扩大。一旦边界的防线被攻破或绕过&#xff0c;攻击者就可以在数据中心内…

python数据清洗

数据清洗包括&#xff1a;空值&#xff0c;异常值&#xff0c;重复值&#xff0c;类型转换和数据整合 这里数据清洗需要用到的库是pandas库&#xff0c;下载方式还是在终端运行 &#xff1a; pip install pandas. 首先我们需要对数据进行读取 import pandas as pddata pd.read…

MySQL的索引和锁

MySQL的索引和锁 一.存储引擎1.1 MySQL体系结构1). 连接层2). 服务层3).存储引擎层4). 存储层 1.2 存储引擎介绍1). 建表时指定存储引擎2). 查询当前数据库支持的存储引擎 1.3 存储引擎特点1.3.1 InnoDB1.3.2 MyISAM 1.4 存储引擎选择 二 索引2.1 索引概述2.1.1 介绍2.2.2 B-Tr…

【数据库开发】国产数据库之涛思TDengine

文章目录 1、简介2、安装2.1 安装TDengine服务2.2 运行TDengine服务&#xff08;taosd&#xff09;2.3 执行TDengine命令行&#xff08;taos&#xff09; 3、测试3.1 新建数据库&#xff08;命令行命令&#xff09;3.2 新建数据库&#xff08;脚本文件&#xff09;3.3 命令行参…

KlayGE-004-InputCaps 例子分析

InputCaps处理外部输入的事件 该例子主要由两部分内容&#xff1a; 外部输入事件获取 ​ 可以处理keyboard、mouse、joystick、touch、sensor的输入事件 显示一个ui图标按钮 Input 定义监听事件类型&#xff1a; KlayGE::InputActionDefine actions[] {InputActionDefin…

【opencv】图像数字化——认识OpenCV中的Mat类(4 访问单通道Mat对象中的值)

4 访问单通道Mat对象中的值 4.1使用成员函数at() 格式&#xff1a;m.at(r,c)&#xff0c;访问第r行c列 #include <opencv2/core/core.hpp> #include<iostream> using namespace std; using namespace cv; int main() {//构造矩阵Mat m (Mat_<int>(3,…

浅浅了解一下JWT

JWT 介绍 JWT 是 JSON Web Token 的缩写&#xff0c;JWT 本身没有定义任何技术实现&#xff0c;它只是定义了一种基于 Token 的会话管理的规则&#xff0c;涵盖 Token 需要包含的标准内容和 Token 的生成过程。 首先&#xff0c;俺们先来看看一个 JWT Token 长这样。 eyJhbGci…

burpsuite 插件编写入门

文章目录 一、什么是扩展 / 插件&#xff1f;实现一个简单的 插件/扩展 系统 二、burp 的扩展三、开发步骤总结 一、什么是扩展 / 插件&#xff1f; 关于这个话题&#xff0c;知乎有一个回答题不错&#xff0c;主要也是引用了wikipedia 插件/扩展&#xff0c;是向现有的计算机…