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

目录

一、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所管理的容器是哪个。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

koa开发实践2:为koa项目添加路由模块

nodeJS server-side-developkoa开发实践2&#xff1a;为koa项目添加路由模块上一节&#xff1a;《 koa开发实践2&#xff1a;为koa项目添加路由模块 》| 下一节&#xff1a;《 koa开发实践3&#xff1a;在koa项目中使用 swagger 文档 》作者&#xff1a; 李俊才&#xff1a;…

哪些是真正的全光谱灯品牌呢?推荐五款全光谱护眼灯

所谓全光谱&#xff0c;就是指灯光的色谱成分无限接近太阳光的色谱成分。我们都知道&#xff0c;太阳光不单单只有一束简单的白光&#xff0c;而是有很多种颜色的单色光复合而成&#xff0c;所以它的色彩显色效果非常丰富、真实&#xff0c;这些单色光也成了太阳光的色谱成分。…

浅谈机器学习--聚类

还不了解机器学习&#xff1f;来看&#xff01; 目录 一.聚类 二.k均值聚类算法(k-means) 1.k均值聚类算法的流程 二.k均值算法的改进 1.二分k-means算法 2.k-means算法 3.k-medoids算法 4.Mini Batch k-means算法 三.DBSCAN算法 1.​编辑-邻域 2.核心点和边界点 …

关于TextureRender适配的解决方案

当我们用摄像机渲染出一个图片&#xff0c;显示在UI的时候&#xff0c;会发现&#xff0c;你如果自适配&#xff0c;那么就会拉伸图片&#xff0c;导致人物或者场景变形。 我最近就遇到了这个事&#xff0c;这里我给出几种问题和解决方案&#xff1a; 1 &#xff1a;当我们想…

NSSCTF Round#11 --- 密码个人赛 wp

文章目录ez_encMyMessageMyGameez_signinez_facez_enc 题目&#xff1a; ABAABBBAABABAABBABABAABBABAAAABBABABABAAABAAABBAABBBBABBABBABBABABABAABBAABBABAAABBAABBBABABABAAAABBAAABABAABABBABBBABBAAABBBAABABAABBAAAABBBAAAABAABBBAABBABABAABABAAAAABBBBABAABBBBAAAAB…

开心档之开发入门网-C++ 变量类型

C 变量类型 目录 C 变量类型 C 中的变量定义 C 中的变量声明 实例 实例 C 中的左值&#xff08;Lvalues&#xff09;和右值&#xff08;Rvalues&#xff09; 变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有指定的类型&#xff0c;类型决定了变量存储的大小…

Java多线程:线程组

线程组 可以把线程归属到某一个线程组中&#xff0c;线程组中可以有线程对象&#xff0c;也可以有线程组&#xff0c;组中还可以有线程&#xff0c;这样的组织结构有点类似于树的形式&#xff0c;如图所示&#xff1a; 线程组的作用是&#xff1a;可以批量管理线程或线程组对象…

电脑清理怎么做?5个方法帮你解决电脑空间不足的问题!

案例&#xff1a;电脑清理怎么做&#xff1f; 【求一个电脑清理的好方法&#xff01;电脑垃圾文件太多了又不敢随意删除&#xff0c;怕误删重要的文件&#xff01;哪位友友可以帮我出出主意呀&#xff1f;到底应该怎么清理电脑呢&#xff1f;】 电脑使用的时间长了都会慢慢变…

(链表)合并两个排序的链表

文章目录前言&#xff1a;问题描述&#xff1a;解题思路&#xff1a;代码实现&#xff1a;总结&#xff1a;前言&#xff1a; 此篇是针对链表的经典练习。 问题描述&#xff1a; 输入两个递增的链表&#xff0c;单个链表的长度为n&#xff0c;合并这两个链表并使新链表中的节…

用队列实现栈和用栈实现队列

目录用队列实现栈创建栈实现入栈实现出栈判空取栈顶元素释放用栈实现队列创建队列入队出队返回队列开头的元素判空释放前面我们实现了栈和队列&#xff0c;其实栈和队列之间是可以相互实现的 下面我们来看一下 用 队列实现栈 和 用栈实现队列 用队列实现栈 使用两个队列实现一…

Windows创建用户,添加到管理员组,添加到远程桌面组、RDP

原因&目的 在获得反弹shell后无法得到明文密码&#xff0c;无法远程桌面登录 在目标机器创建新的账号&#xff0c;且为管理员账号&#xff0c;可以远程桌面登录 cmd /c net user gesila 123 /add cmd /c net localgroup Administrators gesila /add cmd /c net localgro…

优思学院 | 质量工程师的职责有哪些?

质量工程师&#xff0c;是一位肩负着质量管理、质量控制和质量改进使命的职业人员。他们身负使命&#xff0c;不断探究、发现、改进&#xff0c;为企业打造出更加卓越、可靠的产品和服务。 在大多数企业中&#xff0c;质量工程师是一个非常重要的职位&#xff0c;他们的职责在…

智能立体车库plc以太网无线应用

一、项目背景 此项目为平面移动类智能停车库&#xff0c;是以传感器网络为支撑的物联网智能停车管理系统。比较于传统的停车场模式&#xff0c;智能立体车库不仅占地少&#xff0c;空间利用率高&#xff0c;智能化程度高&#xff0c;采用集约化系统化的车位管理、收费管理&…

Vue3 集成Element3、Vue-router、Vuex实战

第一步&#xff1a;使用Vite快速搭建Vue 3项目 基础操作总结&#xff1a; npm init vite-app 项目名称cd 项目名称npm installnpm run dev 温馨提示&#xff1a;如果还是Vue 2 环境请参考&#xff1a;Vue 2 升级Vue3 &#xff0c;并且使用vsCode 搭建Vue3 开发环境 Vue 3 …

ARM uboot 启动 Linux 内核

一、编译厂商提供的 uboot 此处&#xff0c;我使用的是九鼎提供的 uboot &#xff1a; 二、烧录 uboot 到 SD 卡 进入 uboot 的 sd_fusing 目录&#xff0c;执行命令烧写 uboot &#xff1a; ./sd_fusing.sh /dev/sdb。 三、将 SD 卡插入开发板&#xff0c;进入 uboot 按任意…

操作系统-内存管理

一、总论 1.1 硬件术语 ​ 为了不让读者懵逼&#xff08;主要是我自己也懵逼&#xff09;&#xff0c;所以特地整理一下在后面会用到术语。 ​ 我们电脑上有个东西叫做内存&#xff0c;他的大小比较小&#xff0c;像我的电脑就是 16 GB 的。它是由 ROM 和 RAM 组成的&#x…

RK3588平台开发系列讲解(同步与互斥篇)信号量介绍

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、信号量介绍二、信号量API1、结构体2、API三、函数调用流程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢上一章我们看了自旋锁的原理,本章我们一起学习下信号量的用法。 一、信号量介绍 和自旋锁一样,…

渗透测试综合实验(迂回渗透,入侵企业内网并将其控制为僵尸网络)

第1节 实验概述 1.1 实验背景概述 本实验为模拟真实企业环境搭建的漏洞靶场&#xff0c;通过网络入侵Web服务器&#xff0c;拿到控制权限后发现有内网网段&#xff0c;建立隧道做内网穿透&#xff0c;接着进一步扫描内网主机&#xff0c;并进行漏洞利用&#xff0c;最终通过域…

java登录页面验证码的生成以及展示

1、代码示例 后端返回前端一个字节数组。 2、gif图面展示 网页中一张图片可以这样显示&#xff1a; <img src“http://www.jwzzsw.com/images/log.gif”/>也可以这样显示&#xff1a; <img src“data:image/gif;base64,R0lGODlhAgACAIAAAP///wAAACwAAAAAAgACAAACAo…

聚会Party

前言 加油 原文 聚会常用会话 ❶ He spun his partner quickly. 他令他的舞伴快速旋转起来。 ❷ She danced without music. 她跳了没有伴乐的舞蹈。 ❸ The attendants of the ball are very polite. 舞会的服务员非常有礼貌。 ❶ Happy birthday to you! 祝你生日快乐!…