Vue 入门案例剖析

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的工作成果往哪放。

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

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

相关文章

红海云签约和兆服饰,科技引领服饰行业人力资源数字化转型

和兆服饰从事多品牌多品类经营管理&#xff0c;旗下拥有POLOSPORT、POLOKIDS、CARTELO等国际品牌。作为一个主打POLO文化的服饰品牌&#xff0c;诞生于美国的POLOSPORT拥有现代感的产品设计、系列化的产品搭配、全方位的服务&#xff0c;是最具美国马球精神的休闲时尚服饰品牌之…

暖通空调系统使用Modbus转Profinet网关应用配置案例

PLC通过兴达易控Modbus转Profinet网关&#xff08;XD-MDPN100)控制暖通空调的温度、湿度。作为控PLC可以通过Modbus传输到Profinet网关&#xff0c;与空调系统的压缩机进行通信&#xff0c;从而准确控制单元的加热、加湿、冷却和减湿。PLC可以实时监控和调整空调系统的运行状态…

给VSCode插上一双AI的翅膀

#AI编程助手哪家好&#xff1f;DevChat“真”好用# 文章目录 前言一、安装DevChat1.1、访问地址1.2、注册1.3、在VSCode里安装DevChat插件1.3.1、未安装状态1.3.2、已安装状态 二、设置Access Key2.1. 点击左下角管理&#xff08;“齿轮”图标&#xff09;—命令面板&#xff…

mac 卸载第三方输入法

输入法设置里的移除&#xff0c;并不是真的卸载&#xff0c;点击还是能添加回来 在活动监视器里强制退出此输入法在访达界面使用快捷键 ShiftcommandG在弹出的对话框内输入以下路径&#xff08;/资源库/Input Methods&#xff09;&#xff0c;再点击下面的前往找到你要卸载的输…

【深度神经网络(DNN)】实现车牌识别

文章目录 前言一、数据集介绍二、步骤1.导包2.参数配置3.数据处理4.模型定义5.模型训练6.模型预测 总结 前言 课内实践作业 车牌识别 一、数据集介绍 1.车牌识别数据集&#xff1a;VehicleLicense车牌识别数据集包含16151张单字符数据&#xff0c;所有的单字符均为严格切割且…

【网络协议】聊聊HTTPDNS如何工作的

传统 DNS 存在哪些问题&#xff1f; 域名缓存问题 我们知道CND会进行域名解析&#xff0c;但是由于本地会进行缓存对应的域名-ip地址&#xff0c;所以可能出现过期数据的情况。 域名转发问题 出口 NAT 问题 域名更新问题 解析延迟问题 因为在解析DNS的时候&#xff0c;需要进行…

MySQL:锁机制

目录 概述三种层级的锁锁相关的 SQLMyISAM引擎下的锁InnoDB引擎下的锁InnoDB下的表锁和行锁InnoDB下的共享锁和排他锁InnoDB下的意向锁InnoDB下的记录锁&#xff0c;间隙锁&#xff0c;临键锁记录锁&#xff08;Record Locks&#xff09;间隙锁&#xff08;Gap Locks&#xff0…

IDEA Plugin插件开发相关踩坑

1 前言 最近在研究IDEA插件开发&#xff0c;踩了不少坑&#xff0c;特意在这里记录一下…… 2 Java相关类找不到 照着网上一些资料&#xff0c;想要实现代码审计自动提示功能&#xff0c;需要继承AbstractBaseJavaLocalInspectionTool 结果import一片爆红&#xff0c;找不到相…

从F5 BIG-IP RCE漏洞(CVE-2023-46747)来看请求走私的利用价值

0x01 前言 F5 BIG-IP广域流量管理器是一种网络流量管理设备&#xff0c;用于提升链路性能与可用性。F5在金融行业具有特别广泛的使用量&#xff0c;做过各大银行攻防演练的小伙伴对这个系统应该不会陌生。 最近爆出的CVE-2023-46747漏洞能达到远程RCE的效果&#xff0c;属于严重…

论文阅读——InternImage(cvpr2023)

arxiv&#xff1a;https://arxiv.org/abs/2211.05778 github&#xff1a;https://github.com/OpenGVLab/InternImage 一、介绍 大部分大模型都是基于transformer的&#xff0c;本文是一个基于CNN的视觉基础模型。使用可变性卷积deformable convolution作为核心操作&…

Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器(一)

下一篇&#xff1a;Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器&#xff08;二&#xff09;-CSDN博客 介绍&#xff1a; Windows操作系统中自带了一款记事本应用程序&#xff0c;通常用于记录文字信息&#xff0c;具有简单文本编辑功能。Windows的记事本可以新…

Go和JavaScript结合使用:抓取网页中的图像链接

前言 在当今数字化时代&#xff0c;数据是金钱的源泉&#xff0c;对于许多项目和应用程序来说&#xff0c;获取并利用互联网上的数据是至关重要的。其中之一的需求场景是从网页中抓取图片链接&#xff0c;这在各种项目中都有广泛应用&#xff0c;特别是在动漫类图片收集项目中…

漏刻有时百度地图API实战开发(6)多个标注覆盖层级导致不能响应点击的问题

漏刻有时百度地图API实战开发(1)华为手机无法使用addEventListener click 的兼容解决方案漏刻有时百度地图API实战开发(2)文本标签显示和隐藏的切换开关漏刻有时百度地图API实战开发(3)自动获取地图多边形中心点坐标漏刻有时百度地图API实战开发(4)显示指定区域在移动端异常的解…

【MATLAB源码-第70期】基于matlab的萤火虫算法(FA)的栅格路径规划,输出最短路径和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 萤火虫算法&#xff08;Firefly Algorithm&#xff0c;FA&#xff09;是由剑桥大学的Xin-She Yang在2008年提出的一种元启发式优化算法。该算法的灵感来源于萤火虫闪烁的行为特征&#xff0c;主要用于解决连续的优化问题。萤…

在 Gorm 中学习分页和排序

一个全面的指南&#xff0c;教您在 GORM 中实现分页和排序&#xff0c;以实现高效的数据检索和展示 高效的数据检索和展示是应用程序开发的关键方面。GORM&#xff0c;强大的 Go 对象关系映射库&#xff0c;为开发人员提供了强大的工具来实现这一目标。在本指南中&#xff0c;…

去中心化数据云项目Oort主网即将上线

备受期待的去中心化数据云项目Oort&#xff0c;今日已通过官方X账号官宣&#xff0c;将于纽约时间11月27日正式上线主网Olympus Protocol。届时&#xff0c;用户也能够通过Oort的Ale Wallet钱包和开发者API使用主网&#xff0c;并可通过OORT浏览器查询交易和合约&#xff0c;开…

代码随想录 Day41 动态规划09 LeetCode T121 买卖股票的最佳时机 T122 买卖股票的最佳时机II

前言 这两题看起来是不是有点眼熟,其实我们在贪心章节就已经写过了这两道题,当时我们用的是将利润分解,使得我们始终得到的是最大利润 假如第 0 天买入&#xff0c;第 3 天卖出&#xff0c;那么利润为&#xff1a;prices[3] - prices[0]。 相当于(prices[3] - prices[2]) (pri…

小程序 打开方式 页面效果 表单页面 点击跳到详情页 图标 获取后台数据 进行页面渲染

请求地址&#xff1a;geecg-uniapp 同源策略 数据请求 获取后台数据 ui库安装 冲突解决&#xff08;3&#xff09;-CSDN博客 一.uniapp转小程序 (1) 运行微信开发工具 &#xff08;2&#xff09; 配置id 然后运行 打开小程序 路径 E:\通\uniapp-jeecg\unpackage\dist\d…

MySQL -- mysql connect

MySQL – mysql connect 文章目录 MySQL -- mysql connect一、Connector/C 使用1.环境安装2.尝试链接mysql client 二、MySQL接口1.初始化2.链接数据库3.下发mysql命令4.获取执行结果5.关闭mysql链接6.在C语言中连接MySQL 三、MySQL图形化界面推荐 使用C接口库来进行连接 一、…

ppt聚光灯效果

1.放入三张图片内容或其他 2.全选复制成图片 3.设置黑色矩形&#xff0c;透明度30% 4.粘贴复制后的图片&#xff0c;制定图层 5.插入椭圆&#xff0c;先选中矩形&#xff0c;再选中椭圆&#xff0c;点击绘图工具&#xff0c;选择相交即可&#xff08;关键&#xff09;