Vue 入门案例剖析

news2024/10/6 10:31:12

vscode 启用open with live server功能,配置谷歌浏览器chrome_小头猿的博客-CSDN博客

之所以使用vue就是想让其帮我们构建页面,构建出来了页面但是摆在那个位置呢?所以得准备好一个容器,最起码得有东西去承接这个界面。

控制台这里有错误,可以看到是资源找不到。这个资源其实就是网站的页签图标。这个请求是浏览器默认的行为。浏览器打开任何一个网站的时候都会默认的去请求页签图标,这里没有就404了。

 这个其实就是找本机5500这个端口服务去要图片资源,选中了就在本机的5500端口号上开了一台内置的小服务器。

并且做了一个小动作,将整个工程里面所有的文件文件夹都作为这台服务器的根资源去使用。

可以看到一共有这么多东西。要解决资源找不到将一张图片放到指定的目录下面(根路径)即可。

下面得写一段代码让vue工作起来。

当你引入了src="js/vue.js"这个之后,全局都多出来了vue的构造函数。既然是构造函数就得使用new去调用。

按照编码习惯来说,我们总喜欢在实例对象出现的时候拿一个变量去接。

const x = new Vue()

这行代码是一切的开端,你要想使用vue但是不写这一行免谈。

这里参数只传入一个,并且参数的类型是对象,我们管这种对象叫做配置对象,比如使用axios那么也需要传入一个对象。

axios({
  url: "http:xxxx"    //具体给哪个发请求
})

配置对象里面的key是不能随便乱改的,值你是可以换地址的。提示value的数据类型也是不能随便更改的,得使用指定的数据类型。

el是element的简称,也就是元素的简称。这里其实就是一个id选择器,通过id选择器找到了这个容器。

其实也就是创建了一个vue实例,一个创建了容器,如果没有el这个配置,那么vue和容器是互相看不见的,不知道对方的存在。写了el就让容器和实例建立起来了关系,之后vue实例就知道了要将工作成果放在红色的里面去。

之前的写法就是你给他选择器,它自己找去就行了。下面这种就是亲自找到这个元素配置到el里面,不过这种使用的比较少。

 el: document.getElementById('root')

这样容器和vue就建立起来了关系,但是没有意义,因为这里面所有的东西都是写死的。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>首页</title>
    <!--引入vue,这里引入vue那么这里就多了vue构造函数-->
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
    
</head>

<body>
    <!--准备好一个容器-->
    <div id="root">
        <h1>xxxx</h1>
    </div>
     <script type="text/javascript">
            Vue.config.productionTip = false
            //创建vue实例
            const x = new Vue({
                el: 'root'   //el用于指定当前vue实例为哪个容器服务,值通常为css选择器字符串
            })
     </script>

</body>

</html>

这里面需要将容器变化的数据交给vue实例去保管,这样数据变化的时候就很简单了,只需要修改vue里面的数据即可。

这里有种感觉就是你只需要将数据维护好,用到数据的地方自然而然的就变了,省去了你操作dom,这里data也是一个对象。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>首页</title>
    <!--引入vue,这里引入vue那么这里就多了vue构造函数-->
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
 
<body>  

    <div id="app">
        <h1>hello world name:{{name}} age:{{age}}</h1>
    </div>
         
    <script type="text/javascript">  
    //创建vue实例      
     const x = new Vue({    //el用于指定当前vue实例为哪个容器服务,值通常为css选择器字符串
          el: "#app",   
          data:{ 
            name: "lucas",
            age: 20,
          }
       })
    </script>
 
</body>
</html>

data用于存储数据,数据为vue实例指向的容器去使用。这里vue实例只接管了容器里面的东西,容器外面的标签是不管的。

上面的data里面的值暂且先写成对象,在说到组件的时候,这个data得写成函数。

最后const x = new Vue()可以不使用const x 直接new Vue因为不需要给到一个常量。直接使用new就行了。

 

 注意事项


容器和vue实例是一对一关系,不存在一对多,多对一,多对多的关系,这样会报错。

双括号里面的代码必须写成js里面的表达式,其实也就是最后表达式都会返回给你一个结果值。

注意区分:js表达式和js代码(语句)
1.表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方:
(1)a
(2)a+b
(3)demo(1)
(4)x===y?'a′:'b'
2.js代码(语句)
(1).if(){}
(2).for()

    <div id="app">
        <h1>hello world name:{{name}} age:{{age+1}} {{1+1}} {{Date.now()}}</h1>
    </div>
         
    <script type="text/javascript">  
    Vue.config.productionTip = false
    //创建vue实例      
      new Vue({    //el用于指定当前vue实例为哪个容器服务,值通常为css选择器字符串
          el: "#app",   
          data:{ 
            name: "lucas",
            age: 20,
          }
       })
    </script>

数据是动态变化的,所以数据是要交给vue实例去管理,在页面里面只要使用到vue data里面的数据变化了页面上就会自动更新,就不需要你去操作dom了,它们之间仿佛有隧道连接着它们。

vue实例下面会出现很多小东西,这些小东西就是组件(这里暂时还没有组件)。这里可以修改data里面的数据,可以看到修改了age未202,页面当中的数据也修改变化了。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>首页</title>
    <!--引入vue,这里引入vue那么这里就多了vue构造函数-->
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
 
<body>  

    <div id="app">
        <h1>hello world name:{{name.toUpperCase()}} age:{{age+1}} {{1+1}} {{Date.now()}}</h1>
        <button onclick="">点击变化数据</button>
    </div>
         
    <script type="text/javascript"> 

    Vue.config.productionTip = false
    //创建vue实例      
      new Vue({    //el用于指定当前vue实例为哪个容器服务,值通常为css选择器字符串
          el: "#app",   
          data:{ 
            name: "lucas",
            age: 20,
          }
       })
    </script>
 
</body>
</html>

注意事项总结:

  • Vue实例和容器是一 一对应的
  • 真实开发中只有一个Vue实例,并且会配合着组件一起使用
  • {{xxx}}中的xxx要写js表达式,且xxx可以自动读取到data中的所有属性
  • 一且data中的刻据发生改变,那么模板中用到该数据的地方也会自动更新,最终影响的是页面

 

总结


初识Vue:
1.想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象
2.root 容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法
3.root 容器里的代码被称为【Vue模板】

先准备好容器,然后有的vue实例,当vue实例开始工作的时候,拿到绑定的容器,之后去扫描看是否有特殊的语法。 模板其实就是htlm里面混着很多的写法,这个就是vue的模板,经过解析就变成了正常的html片段,包含了你需要的数据。

容器两个作用,一个是为vue提供模板,其次是将vue的工作成果往哪放。

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

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

相关文章

谷歌插件报错 Manifest version 2 is deprecated, and support will be removed in 2023.

点开错误发现 高亮部分有问题。 下面是这个插件的解压后的原始包&#xff1a;我们主要就去找json结尾的东西 就这两个 一个个排除 找到了 把2 改成3就可以了 一定要记得保存&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff0…

大口径智能水表支持最高水流量是多少?

随着科技的不断发展&#xff0c;我国城市化进程的加快&#xff0c;水资源管理日益受到重视。作为一种先进的用水计量设备&#xff0c;大口径智能水表凭借其高精度、低误差、远程抄表等优点&#xff0c;在市场上备受青睐。那么接下来&#xff0c;小编就来为大家详细的介绍一下大…

Debian12换镜像源

0 背景 用docker运行了一个node容器&#xff0c;发现连vim也没有&#xff0c;所以打算安一个vim 1 查看操作系统 find / -name *release* #查看release信息2 更换镜像源 2.1 从网上找个国内镜像源 确定好操作系统版本后&#xff0c;从网上搜一下对应的数据源。这里提供一个…

全景房屋装修vr可视化编辑软件功能及特点

VR样板间、VR景观、VR商业街&#xff0c;全方位展示建筑内外空间使用及功能表現&#xff0c;让目标客戶能够身临其境体验項目的每处细节。 同时支持微信传播&#xff0c;线上看房&#xff0c;手机端VR沉浸式体验 3D互动售楼系统 3D互动售楼系统&#xff0c;集项目展示、智能选房…

C语言--汉诺塔【内容超级详细】

今天与大家分享一下如何用C语言解决汉诺塔问题。 目录 一.前言 二.找规律⭐ 三.总结⭐⭐⭐ 四.代码实现⭐⭐ 一.前言 有一部很好看的电影《猩球崛起》⭐&#xff0c;说呀&#xff0c;人类为了抗击癌症发明了一种药物&#x1f357;&#xff0c;然后给猩猩做了实验&#xff0…

js堆栈函数及断点调试(简单使用,仅供自己参考)

第一步打开调试面板点击源代码tab再点击webpack找到自己写的代码&#xff08;以vue项目为例&#xff0c;构建完后的项目是不能调试的&#xff09; 第二步在你需要调试的地方点击一下卡个点&#xff0c;如上图所示&#xff0c;然后刷新网页 第三步&#xff0c;点击调试操作箭头…

商人宝:新版收银系统比传统的收银机有哪些优势

新版收银系统凭借安装迅速、使用便捷、升级省心等特点&#xff0c;正逐步替换掉传统的安装下载的C/S架构的收银系统。今天&#xff0c;小编为大家分享新版收银系统对比传统收银机的三大优势。欢迎大家点赞关注&#xff0c;以及收藏本文章&#xff0c;以便后续多了解。 一是网页…

华为两大旗帜性人物相继发声!透露出哪些重要信息?

近几年&#xff0c;“算力”一词越来越频繁地出现在我们的视野中&#xff0c;随着数字化与智能化进程的加快&#xff0c;对于算力的要求越发迫切。 不知道朋友们有没有关注到&#xff0c;近日华为两大旗帜性人物&#xff0c;在短时间内也相继谈及算力...... 01 、华为持续加码…

这8个图片素材库,真的免费下载,4K无水印

不会还有人不知道去哪里下载高质量图片素材吧&#xff0c;给大家推荐8个网站&#xff0c;免费下载&#xff0c;以后的图片素材都不用愁了&#xff0c;赶紧收藏起来&#xff01; 1、菜鸟图库 https://www.sucai999.com/pic.html?vNTYxMjky 一个很大的素材库&#xff0c;站内主…

数字政府!3DCAT实时云渲染助推上海湾区数字孪生平台

数字孪生&#xff0c;是一种利用物理模型、传感器数据、运行历史等信息&#xff0c;在虚拟空间中构建实体对象或系统的精确映射&#xff0c;从而实现对其全生命周期的仿真、优化和管理的技术。数字孪生可以应用于各个领域&#xff0c;如工业制造、智慧城市、医疗健康、教育培训…

Linux-命令行命令

注&#xff1a;[]的内容说明是可选的 1.ls ls [-a -l -h] [Linux路径] >如果没有参数&#xff0c;就展示当前工作目录的内容 > -a&#xff1a;all的意思&#xff0c;即列出所有文件&#xff08;包含隐藏文件/文件夹&#xff09; > -l&#xff1a;以列表形式展示内容&…

怎么建模HEC-RAS【案例-利用HEC-RAS分析河道建筑对洪水管控的作用】 洪水计算、堤防及岸坡稳定计算、冲淤分析、壅水计算、冲刷计算、水工构筑物建模

背景介绍 人口数量的增长、不合理的区域规划和无计划的工程实践&#xff0c;让洪水对于人类而言变得极具风险。 为了最大程度地减少洪水造成的损害&#xff0c;采取管控措施往往需要在初期执行&#xff0c;为了研究这些管控措施&#xff0c;需要确定河段桥梁和作为调节的水利设…

基于springboot实现福聚苑社区团购平台系统项目【项目源码】计算机毕业设计

基于springboot实现福聚苑社区团购平台系统演示 Javar技术 Java是一种网络脚本语言&#xff0c;广泛运用于web应用开发&#xff0c;可以用来添加网页的格式动态效果&#xff0c;该语言不用进行预编译就直接运行&#xff0c;可以直接嵌入HTML语言中&#xff0c;写成js语言&…

畜牧猪舍养殖成功 管理效率提高的背后原因

畜牧养猪远程监控方案 畜牧养猪物联网远程监控方案其目的是为了提高养猪场的管理效率&#xff0c;降低生产成本&#xff0c;提高猪肉质量和养殖安全。现有的方案通常包括传感器和无线网络设备&#xff0c;这些设备可以监测养猪场的温度、湿度、气体浓度、环境光照等指标&#…

【bug】vue create 项目名,bash: vue: command not found

创建项目的时候&#xff0c;报bash: vue: command not found 一步一步排查 1、node是否安装&#xff0c;node -v 2、不是node的问题&#xff0c;试试npm install -g vue/cli&#xff0c;安装脚手架&#xff0c;其实这里是正在安装的意思&#xff0c;但是速度比较慢&#x…

物联网水表电子阀工作原理是怎样的?

随着科技的不断发展&#xff0c;物联网技术逐渐深入到我们的生活之中。作为智能家居的重要组成部分&#xff0c;物联网水表电子阀凭借其智能化、节能环保等优势&#xff0c;受到了越来越多用户的青睐。接下来&#xff0c;合众小编将来为大家介绍下物联网水表电子阀工作原理。 一…

载波通讯电表的使用年限是多久?

随着科技的飞速发展&#xff0c;智能家居、物联网等概念逐渐深入人心&#xff0c;载波通讯电表作为一种新型的智能电表&#xff0c;凭借其低功耗、高可靠性、远程通讯等优点&#xff0c;广泛应用于居民用电、工业生产等领域。那么&#xff0c;载波通讯电表的使用年限是多久呢&a…

【第2章 Node.js基础】2.4 Node.js 全局对象...持续更新

什么是Node.js 全局对象 对于浏览器引擎来说&#xff0c;JavaScript 脚本中的 window 是全局对象&#xff0c;而Node.js程序中的全局对象是 global&#xff0c;所有全局变量(除global本身外)都是global 对象的属性。全局变量和全局对象是所有模块都可以调用的。Node.is 的全局…

split() 函数实现多条件转为数据为数组类型

使用 split() 函数并传递正则表达式 /[,;.-]/ 作为分隔符来将字符串按照逗号、分号和破折号进行拆分&#xff0c;并将结果赋值给 splitArray 数组。下面是一个示例代码&#xff1a; 在上面的示例中&#xff0c;我们使用 split() 函数将 inputString 字符串按照逗号、分号和破折…

VMware 虚拟机如何修改虚拟机系统的网卡速率为万兆——筑梦之路

1. 找到虚拟机系统安装目录 比如E:\vmware-system\kali\ 2. 找到vmx文件&#xff0c;用记事本打开 将 ethernet0.virtualDev "e1000" 这行改为 ethernet0.virtualDev "vmxnet3" 后保存&#xff08;注意vmxnet3全为小写&#xff09;&#xff0c;如果没…