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

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"      
},

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

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

相关文章

[架构之路-254/创业之路-85]:目标系统 - 横向管理 - 源头:信息系统战略规划的常用方法论,为软件工程的实施指明方向!!!

目录 总论&#xff1a; 一、数据处理阶段的方法论 1.1 企业信息系统规划法BSP 1.1.1 概述 1.1.2 原则 1.2 关键成功因素法CSF 1.2.1 概述 1.2.2 常见的企业成功的关键因素 1.3 战略集合转化法SST&#xff1a;把战略目标转化成信息的集合 二、管理信息系统阶段的方法论…

图解系列--路由器和它庞大的功能

03.01 何为路由器 路由器是指主要负责 OSI参考模型中网络层的处理工作&#xff0c;并根据路由表信息在不同的网络 之间转发IP 分组的网络硬件(图3-1)。这里的网络一般是指IP 子网&#xff0c;也可以称为广播域。此外&#xff0c;现在的路由器还会搭载其他各种各样的功能。 0…

mapbox使用marker创建html点位信息

mapbox使用marker创建html点位信息 codePen地址 mapboxgl.accessToken "pk.eyJ1IjoibGl1emhhbzI1ODAiLCJhIjoiY2xmcnV5c2NtMDd4eDNvbmxsbHEwYTMwbCJ9.T0QCxGEJsLWC9ncE1B1rRw"; const center [121.29786, 31.19365]; const map new mapboxgl.Map({container: &quo…

仿写知乎日报第三周

新学到的 本周新学习了FMDB数据库&#xff0c;并对Masonry的使用有了更近一步的了解&#xff0c;还了解了cell的自适应高度 FMDB数据库的介绍和使用&#xff1a;iOS——FMDB的介绍与使用 cell自适应高度和Mansonry自动布局 本周写了评论区&#xff0c;在写评论区的时候&…

XUbuntu22.04之解决桌面突然放大,屏幕跟着鼠标移动问题(一百九十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

SLAM从入门到精通(被忽视的基础图像处理)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 工业上用激光slam的多&#xff0c;用视觉slam的少&#xff0c;这是大家都知道的常识。毕竟对于工业来说&#xff0c;健壮和稳定是我们必须要考虑的…

qt报错permission denied

写fk项目的时候&#xff0c;报这个错&#xff0c;然后网上查&#xff0c;说的是因为之前运行的qt进程没有关闭&#xff0c;然后我在任务管理器上查看&#xff0c;却没有看见有我正在运行的qt程序&#xff0c;我再出现清除 qmake也不可以&#xff0c;然后我再去删除out目录下的所…

【Java 进阶篇】Java Cookie共享:让数据穿越不同应用的时空隧道

在Web开发中&#xff0c;Cookie是一种常见的会话管理技术&#xff0c;用于存储和传递用户相关的信息。通常&#xff0c;每个Web应用都会在用户的浏览器中设置自己的Cookie&#xff0c;以便在用户与应用之间保持状态。然而&#xff0c;有时我们需要在不同的应用之间共享Cookie数…

个人服务器到期,项目下线,新的开始

告别旧服务器 2023.11.06服务器到期&#xff0c;所有项目正式下线 时间真的过的很快&#xff0c;从开始踏入编程的大门&#xff0c;到现在不知不觉已经陆续经手了两台服务器了&#xff0c;目前这台服务器是一年前的阿里云活动白嫖的嘿嘿嘿&#xff0c;该服务器上目前运行的项…

数据结构——B树

文章目录 B树1. 概念2. B树插入分析3.插入过程4. B树插入实现5.B树验证6. B树性能分析7.B树&B*树8. 小结9. B树的运用MyISAMInnoDB 10. 总结 B树 可以用于查询的数据结构非常的多&#xff0c;比如说二插搜索树、平衡树、哈希表、位图、布隆过滤器&#xff0c;但如果需要存…

Oracle(10)Managing Undo Data

目录 一、基础知识 1、AUM :Init Parameters AUM:初始化参数 2、AUM:Other Parameters AUM:其他参数 3、AUM:Sizing an UNDO TS AUM:调整UNDOTS的大小 4、AUM :Undo Quota AUM:撤消配额 5、Get Undo Segment Info 获取撤消段信息 二、基础操作 1、AUM:UNDO Tablespace …

京东大数据平台(京东数据分析):9月京东牛奶乳品排行榜

鲸参谋监测的京东平台9月份牛奶乳品市场销售数据已出炉&#xff01; 9月份&#xff0c;牛奶乳品市场销售呈大幅上涨。鲸参谋数据显示&#xff0c;今年9月&#xff0c;京东平台牛奶乳品市场的销量为2000万&#xff0c;环比增长约65%&#xff0c;同比增长约3%&#xff1b;销售额为…

SSL数字证书服务

SSL/TLS 证书允许Web浏览器使用安全套接字层/传输层安全 (SSL/TLS) 协议识别并建立与网站的加密网络连接。 SSL数字证书主要功能 SSL证书在浏览器或用户计算机与服务器或网站之间建立加密连接。这种连接可以保护传输中的敏感数据免遭非授权方的拦截&#xff0c;从而使在线交易…

【软件测试】其实远远不止需求文档这么简单

我们都知道&#xff0c;软件测试是一门依赖性很强的综合技术&#xff0c;软件测试工程师在施行自己的工作时&#xff0c;总是要依赖其他团队的产出。 比如&#xff0c;我们要依赖着需求团队给出的需求分析说明书来确定测试的方向&#xff0c;又要依赖开发团队产出的实际代码产品…

从UEFI如何启动到系统

从UEFI如何启动到系统 文章目录 从UEFI如何启动到系统UEFI须知1. 进入UEFI setup界面2. Setup界面3. BootManager界面4. Shell下操作4.1. 显示启动设备4.2. 进入设备及查看文件4.3. UEFI下的其他操作4.4. UEFI下的一些Shell命令 5. UEFI下更新固件方法GRUBGRUB界面1. 编辑GRUB选…

【unity小技巧】实现由滑动条控制音量的大小

文章目录 前言开始1.配置BGM2.滑动条3.文本组件4.新增音量控制脚本 完结 前言 这期来一个比较基础的课程&#xff0c;也是比较常用的&#xff0c;unity使用滑动条控制音量的大小 开始 1.配置BGM 2.滑动条 3.文本组件 4.新增音量控制脚本 public class VolumeController : M…

数据结构-邻接表广度优先搜索(C语言版)

对于一个有向图无向图&#xff0c;我们下面介绍第二种遍历方式。 广度优先搜索&#xff0c;即优先对同一层的顶点进行遍历。 如下图所示&#xff1a; 该例子&#xff0c;我们有六个顶点&#xff0c; 十条边。 对于广度优先搜索&#xff0c;我们先搜索a&#xff0c;再搜索abc…

人工智能-深度学习计算:层和块

我们关注的是具有单一输出的线性模型。 在这里&#xff0c;整个模型只有一个输出。 注意&#xff0c;单个神经网络 &#xff08;1&#xff09;接受一些输入&#xff1b; &#xff08;2&#xff09;生成相应的标量输出&#xff1b; &#xff08;3&#xff09;具有一组相关 参数…

【Unity之UI编程】如何用UGUI搭建一个登录注册面板

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;UI_…

15 _ 二分查找(上):如何用最省内存的方式实现快速查找功能?

今天我们讲一种针对有序数据集合的查找算法:二分查找(Binary Search)算法,也叫折半查找算法。二分查找的思想非常简单,很多非计算机专业的同学很容易就能理解,但是看似越简单的东西往往越难掌握好,想要灵活应用就更加困难。 老规矩,我们还是来看一道思考题。 假设我们…