01-开发第一个Vue程序,了解Vue构造函数的配置项data,template,插值语法,el

news2025/7/11 7:32:56

Vue的快速入门

下载并安装vue.js

Vue是一个基于JavaScript实现的框架, 要使用它就需要从Vue官网下载 vue.js文件

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

在这里插入图片描述

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

在这里插入图片描述

第三步:在安装页面向下滚动,直到看到下图所示位置,点击开发版本并下载

在这里插入图片描述

第四步:在HTML文件中使用script标签引入vue.js文件,当你引入vue.js之后Vue就会被注册为一个全局变量

<!--引入开发版本Vue.js(包含完整的警告和调试模式),这里../表示上级目录-->
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript" >
    // 使用Vue.config的全局配置对象,阻止vue在启动时生成生产提示
    Vue.config.productionTip = false 
</script>
<!-- 引入生产版本Vue.mini.js(删除了警告) -->
<script type="text/javascript" src="../js/vue.mini.js"></script>

开发第一个Vue程序

第一步: 由于Vue是一个构造函数, 使用时必先创建Vue实例否则不能直接调用

  • Vue构造函数的参数是个配置对象: Vue框架要求这个参数必须是一个纯粹的JS对象, 在这个对象中可以编写大量的key:value表示Vue的每个配置项

模板语句: Vue框架自己搞的一套语法规则含有一些特殊含义的符号,可以是纯粹的HTML代码,也可以是Vue中特殊的语法规则(插值/指令语法),也可以是二者的混合

  • template配置项: 用来指定模板语句,Vue框架的编译器会对模板语句中的插值/指令语法进行编译,转换成浏览器能够识别的HTML代码,最后渲染到页面

第二步:在Vue实例的$mount()方法中使用id选择器('#app')或类选择器('.app'),将创建的Vue实例挂载到对应的元素位置

  • 当使用类选择器进行挂载时,如果匹配到多个元素(位置)时Vue只会选择第一个位置进行挂载(从上到下第一个)
<!--安装vue.js-->
<script src="../js/vue.js"></script>
<body>
    <!--指定Vue实例的挂载位置-->
    <div id="app"></div>
    <script>
        const myVue = new Vue({
            template : '<h1>Hello Vue!!!!!</h1>'
        })
        // #app是ID选择器只能匹配到一个元素,编写原生JS也可以
        myVue.$mount('#app')
        //myVue.$mount(document.getElementById('app'))
    </script>
</body>

安装Vue Devtools

第一步: 在浏览器搜索极简插件下载Vue Devtools

第二步: 安装开发者工具Vue Devtools,安装完Vue插件后还有在插件详情里面开启Vue插件的权限,设置允许访问文件的地址

Chrome浏览器安装方式
  ①:点击右上角三个点
  ②:点击更多工具 
  ③:点击扩展程序 
  ④:点击右上角的开发者模式,将他启用
  ⑤:将下载的Vue.crx文件直接拖动到浏览器窗口即可 


Edge浏览器安装方式
  ①:点击浏览器右上角的三个点 
  ②:点击扩展 
  ③:点击左下角的开发人员模式,将他启用 
  ④:将Vue.crx文件拖动到浏览器即可收起

Vue构造函数的配置项

data是一个对象

在Vue中有一个data配置项是给整个Vue实例的模板语句提高数据来源的,它可以帮助我们动态的渲染页面

  • data选项的类型: 对象或者函数,对象必须是纯粹的对象即含有零个或多个的key/value键值对
<script>
    <!--指定Vue实例的挂载位置-->
    <div id="app"></div>
    new Vue({
        // 字符串如果需要换行的话,建议将代码写到``反符号当中,不建议使用+进行字符串的拼接
        template : `<h1>电视剧{{name}},上映日期是{{releaseTime}}。主角是{{lead.name}},年龄是{{lead.age}}岁。
				其他演员包括:{{actors[0].name}}({{actors[0].age}}岁),{{actors[1].name}}({{actors[1].age}}岁)</h1>`,
        data : {
            // value可以是一个常量值
            name : '狂飙!!!',
            releaseTime : '2023年1月2日',
            // value可以是一个对象(可以无限嵌套)
            lead : {
                name : '高启强',
                age : 41
            },
            // value可以是一个数组,数组元素可以是对象或常量值
            actors : [
                {
                    name : '安欣',
                    age : 41
                },
                {
                    name : '高启兰',
                    age : 29
                }
            ]
        }).$mount('#app')
</script>
</body>

data是一个函数

data配置项如果是函数的话必须使用return语句返回一个对象

<script>
    const vm = new Vue({
        el : '#app',
        // data直接是一个对象
        data : {
             msg : 'Hello Vue!'
        }
        // 当函数在对象当中时函数的:function可以省略
        data : function(){
            return {
                msg : 'Hello Vue!'
            }
    	}	

        data(){
            return {
                msg : 'Hello Zhangsan!'
            }
        }
    })
</script>

插值语法{{}}

插值语法(胡子语法): Vue框架在在模板语句自己指定的一套语法规则,用来将data中的数据插入到模板语句中的对应位置中

  • Vue编译器会对模板语句进行编译,当遇到{{data中的key}}时从data中取出对应的数据,然后生成一段HTML代码渲染到挂载位置呈现

  • 当data中的数据发生改变时Vue编译器会重新编译模板语句,重新生成HTML代码进行页面渲染

{{}}里的内容:在data中声明的变量,函数等,常量,合法的javascript表达式(表达式的结果是一个值),全局变量的一个白名单如Math,Date,Array,Object

<!-- 准备容器 -->
<div id="app">
    <!-- 在data中声明的变量,函数(不能是自己定义的)-->
    <h1>{{msg}}</h1>
    <h1>{{sayHello()}}</h1>

    <!--常量-->
    <h1>{{100}}</h1>
    <h1>{{'hello vue!'}}</h1>
    <h1>{{3.14}}</h1>

    <!--javascript表达式-->
    <h1>{{1 + 1}}</h1>
    <h1>{{'hello' + 'vue'}}</h1>
    <h1>{{msg + 1}}</h1>
    <h1>{{'msg' + 1}}</h1>
    <h1>{{gender ? '男' : '女'}}</h1>
    <h1>{{number + 1}}</h1>
    <h1>{{'number' + 1}}</h1>
    <h1>{{msg.split('').reverse().join('')}}</h1>
    <!--这是语句不是表达式-->
    <!-- <h1>{{var i = 100}}</h1> -->

    <!-- 在白名单里面的 -->
    <h1>{{Date}}</h1>
    <h1>{{Date.now()}}</h1>
    <h1>{{Math}}</h1>
    <h1>{{Math.ceil(3.14)}}</h1>
</div>
<script>
    new Vue({
        el : '#app',
        data : {
            number : 1,
            gender : true,
            msg : 'abcdef',  
            sayHello : function(){
                console.log('hello vue!');
            }
        }
    })
</script>

template配置项

template配置项: 用来指定模板语句,Vue框架的编译器会对模板语句中的插值/指令语法进行编译,转换成浏览器能够识别的HTML代码并渲染到页面

  • template配置项的模板语句在被编译成HTML代码进行页面渲染时会直接替换掉挂载位置的元素
  • 开发中template配置项可以省略,我们可以直接将插值/指令语法编写到html标签中,Vue框架也能够识别并编译生成HTML代码且不会替换指定挂载位置的元素
  • 注意: 模板语句无论写在哪里,只要data中的数据发生改变都会对模板语句重新编译生成HTML代码

template只能有一个根元素,如果有多个根元素则报错

// 存在多个根元素报错
template:`<h1>{{message}}</h1>
		  <h1>{{name}}</h1>`,
// 修改
template:`<div>
			<h1>{{message}}</h1>
			<h1>{{name}}</h1>
		  </div>` 
<body>
    <!--将模板语句写到HTML代码中,需要Vue框架编译后生成一段HTML代码,然后浏览器进行页面渲染-->
    <div id="app">
        <div>
            <h1>{{msg}}</h1>
            <h1>{{name}}</h1>
        </div>
    </div>

    <script>
        new Vue({
          	// 省略template配置项
            data : {
                msg : 'Hello Vue',
                name : 'yunqing'
            },
            
        }).$mount('#app')
    </script>

el(element)配置项

将Vue实例挂载到指定位置的元素时可以不用$mount()方法,可以使用Vue的el配置项(类或Id选择)告诉Vue实例去接管哪个容器,Vue实例和容器的关系是一对一的

  • 一个Vue实例只能接管一个容器,一旦接管到对应容器之后,即使后面有相同的容器Vue也不会管
  • 一个容器只能被一个Vue实例接管,如果这个容器被某个Vue实例接管了,其他Vue实例再接管也不起作用
<!-- 准备容器 -->
<div class="app">
    <h1>{{msg}}</h1>
</div>

<div class="app">
    <h1>{{msg}}</h1>
</div>

<!-- 准备容器 -->
<div id="app2">
    <h1>{{name}}</h1>
</div>
<script>
    // 这个Vue实例只会接管匹配到的第一个容器,即使后面有相同的容器也不管了
    new Vue({
        el : '.app',
        data : {
            msg : 'Hello Vue!'
        }
    })
	
    // 当前Vue实例已经接管了Id=app2的容器了,后续的其他Vue实例即使在接管也不会起作用
    new Vue({
        el : '#app2',
        // el : document.getElementById('app')
        data : {
            name : 'zhangsan'
        }
    })

    // 这个Vue实例想去接管id='app2'的容器,但是这个容器已经被上面那个Vue接管了,所以他不起作用
    new Vue({
        el : '#app2',
        data : {
            name : 'jackson'
        }
    })

</script>

配置用户代码片段

设置-->user snippets--->搜索javascript.json文件-->配置创建Vue实例的代码片段,JavaScript (ES6) code snippets这款插件也提供了很多代码片段

在这里插入图片描述

// 提示信息
"Creat Vue Instance": {
    // 配置需要生成代码片段的简写形式
    "prefix": "vmobj",
        // 双引号中的内容就是要生成的代码片段,
        "body": [
            "const vm = new Vue({",
            "    el: '#app',",
            "    data: {",
            "       $1",// $1是代码生成后光标的定位位置,可以设置多个,按住tab键可以切换到下一个定位光标
            "    }",
            "})"
        ],
     // 描述信息,可以删除
    "description": "Log output to console"      
},

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

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

相关文章

永恒之蓝(MS17-010)漏洞利用

永恒之蓝&#xff08;eternalblue) 永恒之蓝&#xff08;Eternal Blue&#xff09;爆发于2017年4月14日晚&#xff0c;是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限&#xff0c;以此来控制被入侵的计算机。甚至于2017年5月12日&#xff0c; 不法分子通过改造“永恒…

k8s约束调度

Kubernetes 是通过 List-Watch **** 的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了解耦。 list-watch核心组件为Controller Manager、Scheduler 和 kubelet&#xff0c;这三者协助完成了pod节点的建立过程。 在 Kubernetes 中&…

89 柱状图中最大的矩形

柱状图中最大的矩形 类似接雨水&#xff08;反过来&#xff0c;相当于找接雨水最少的一段&#xff09;题解1 暴力搜索&#xff08;超时&#xff09; O ( N 2 ) O(N^2) O(N2)另一种 题解2 单调栈【重点学习】常数优化 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的…

【接口测试】目前市面上流行的接口大多有哪几种协议的接口?

首先&#xff0c;关于协议这个词&#xff0c;你要清楚。 接口测试它是基于什么进行测试的&#xff0c;接口测试是什么测试类型&#xff0c;其实有有时候问到一个问题&#xff0c;关联性很强。很多关联性的问题你都可以去考虑。 首先接口测试一个功能黑盒测试&后端&#x…

Snackbar使用介绍及自定义

Snackbar使用介绍及自定义 前言一、Snackbar是什么&#xff1f;二、简单使用三、进阶使用参考 [Android 快别用Toast了&#xff0c;来试试Snackbar](https://blog.csdn.net/g984160547/article/details/121269520) 总结 前言 有个UI要显示自定义样式的toast&#xff0c;并居中…

APISpace 天气预报查询API接口案例代码

1.天气预报查询API产品介绍 APISpace 的 天气预报查询&#xff0c;支持全国以及全球多个城市的天气查询&#xff0c;包含国内3400个城市以及国际4万个城市的实况数据&#xff0c;同时也支持全球任意经纬度查询&#xff0c;接口会返回该经纬度最近的站点信息&#xff1b;更新频率…

【JavaScript】jQuery 使用案例

使用JS实现猜数字游戏 原生JS版&#xff1a; <!DOCTYPE html> <html lang"cn"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docum…

视频编码转换技巧:视频批量转码H264转H265,高效且顺畅

随着数字媒体的广泛应用&#xff0c;视频编码转换已成为一种普遍的需求。不同的视频格式和编码标准使得在不同设备上播放视频成为可能&#xff0c;同时也带来了兼容性和传输效率的问题。本文讲解引用云炫AI智剪使视频编码转换技巧&#xff0c;即批量将H264编码转换为H265编码&a…

Java修仙传之神奇的ES(基础使用)

前言 ES是什么&#xff1a;一款强大的搜索引擎ES拓展&#xff1a;elasticsearch结合kibana、Logstash、Beats&#xff0c;也就是elastic stack&#xff08;ELK&#xff09; kibana&#xff1a;可视化 ES&#xff1a;搜索引起 Logstash&#xff1a;数据抓取&#xff0c;数据同步…

Element UI的table不同应用

目录 一、自定义表头 二、纵向表头(动态表头) 2.1、分别拿到表头和表头中日期对应的行数据 2.2、拿到每个日期对应的列数据 一、自定义表头 <el-table-column prop"chu" align"center"><!-- 自定义表头 --><template slot"header…

uniapp 微信小程序 授权隐私流程 网上没有的踩坑记录!

首先什么时候我们需要授权操作&#xff0c;比如下图我们调用这些接口时候首先必须让用户授权&#xff0c;这个政策是2022年2月21日24时起对一下接口增加用户授权操作&#xff0c;详情可以看微信文档 授权的逻辑按照官网的意思是&#xff1a; 这个时候就踩坑了&#xff0c;我把…

Linux命令超详细

Linux基础命令 Linux的目录结构 /&#xff0c;根目录是最顶级的目录了Linux只有一个顶级目录&#xff1a;/路径描述的层次关系同样适用/来表示/home/itheima/a.txt&#xff0c;表示根目录下的home文件夹内有itheima文件夹&#xff0c;内有a.txt ls命令 功能&#xff1a;列出…

高级文本编辑软件 UltraEdit mac中文版介绍说明

UltraEdit mac是一款在Windows系统中非常出名的文本编辑器&#xff0c; UltraEdit for mac对于IT程序猿来说&#xff0c;更是必不可少&#xff0c;可以使用UltraEdit编辑配置文件、查看16进制文件、代码高亮显示等&#xff0c;虽然Mac上已经有了很多优秀的文本编辑器&#xff0…

NOA赛道研究:预计2024年渗透率10%!中算力平台迎窗口期

从基础L2到L3的产业演进中&#xff0c;NOA是至关重要的一步&#xff0c;值得被密切关注。 对于产业链不同位置的玩家&#xff0c;其关注的点有所不同&#xff1a;①对于整车厂来说&#xff0c;根据高工智能汽车监测的数据&#xff0c;基础L2的一体机产品已经趋向于成熟&#x…

看完这个,别说你还找不到免费好用的配音软件

有很多小伙伴还在找配音工具&#xff0c;今天就给大家一次性分享四款免费好用的配音工具&#xff0c;每一个都经过测试&#xff0c;并且是我们自己也在用的免费配音工具 第一款&#xff0c;悦音配音工具 拥有强悍的AI智能配音技术&#xff0c;更专业&#xff0c;完美贴近真人配…

出现身份验证错误,要求函数不受支持windows

现象环境&#xff1a; win10 企业版 mstsc内网远程server2016&#xff0c;出现错误代码&#xff1a; 远程桌面连接出现身份验证错误。要求的函数不受支持。这可能是由于CredSSP加密数据库修正 出现身份验证错误 原因&#xff1a; 系统更新&#xff0c;微软系统补丁的更新将…

armbian 安裝配置教程

1、安装贝锐蒲公英 下载安装包 cd /usr/local/share mkdir pgyvpn wget https://pgy.oray.com/softwares/58/download/1839/PgyVisitor_Raspberry_2.4.0.52291_arm64.deb安装 dpkg -i PgyVisitor_Raspberry_2.4.0.52291_arm64.deb 输入pgyvisitor login/pgyvisitor login -…

全网最全的RDMA拥塞控制入门基础教程

RDMA-CC&#xff08;全网最全的RDMA拥塞控制入门基础教程&#xff09; 文章目录 RDMA-CC&#xff08;全网最全的RDMA拥塞控制入门基础教程&#xff09;DMARDMARDMA举例RDMA优势RDMA的硬件实现方法RDMA基本术语FabricCA&#xff08;Channel Adapter&#xff09;Verbs 核心概念Me…

波浪理论第3波anzo capital昂首资本3个方法3秒确认

要想通过波浪理论在交易中赚取最大利润&#xff0c;确认第三波必不可少&#xff0c;因为第三波通常是趋势中最大和最强的一波&#xff0c;今天anzo capital昂首资本3个方法3秒确认。 首先&#xff0c;第一个确认方法—斜率。 通常&#xff0c;第三波的斜率会比第一波更陡峭&a…

使用 Python 进行自然语言处理第 5 部分:文本分类

一、说明 关于文本分类&#xff0c;文章已经很多&#xff0c;本文这里有实操代码&#xff0c;明确而清晰地表述这种过程&#xff0c;是实战工程师所可以参照和依赖的案例版本。 本文是 2023 年 1 月的 WomenWhoCode 数据科学跟踪活动提供的会议系列文章中的一篇。 之前的文章在…