Vue——初识vue

news2024/12/26 17:35:39

目录

1.浏览器控制台报错

2.Vue入门

3.Vue模版语法

4.数据绑定

5.el与data的两种写法

总结



       

本系列属于纯干货系列,我们也不多说,直接上干货。

1.浏览器控制台报错

GET http://127.0.0.1:5500/favicon.ico 404 (Not Found)

具体如下图

这是为什么呢???

        其实这就是一个页签资源找不到了,我们看网络GET请求并没有在vue的服务器里找到资源,我们这时候只需要在项目的根路径下放一个图片,将图片名和后缀全部修改为如下所示favicon.ico,即可。

2.Vue入门

直接上入门代码,代码内部提供了详细的注释,下面是一些解释:

这段代码是一个使用Vue.js框架的简单示例。下面对代码进行逐行解释:

  1. <script type="text/javascript" src="../js/vue.js">&lt;/script>:引入Vue.js库,用于使用Vue框架的功能。

  2. <div id="root">:一个容器元素,用于将Vue实例渲染到页面上。

  3. <h2>我是 {{name}} 公司的CEO {{comp}} &lt;/h2>:二级标题,使用Vue的差值表达式来显示动态数据。{{name}}{{comp}}会分别被Vue实例中的namecomp属性的值替换。

  4. <script type="text/javascript">:JavaScript脚本的开始标签。

  5. Vue.config.productionTip = false:设置Vue的配置,这里是禁止Vue在启动时生成生产提示。

  6. const vm = new Vue({:创建Vue实例的语法,vm是Vue实例的名称,可以取任意合法的变量名。

  7. el:'#root',:通过el选项指定Vue实例要挂载的容器,这里指定为id为root的元素。

  8. data:{:Vue实例的一个选项,用于定义数据。

  9. name:'WenJGo',:一个数据属性,名称为name,初始值为WenJGo

以上就是这段代码的解释,它的功能是在页面上显示"hello"和一段动态数据。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>01初识vue</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 准备好一个容器 -->
    <div id="root">
        <h1>hello</h1>
        <!-- 这里的{{}}是差值表达式(也称差值表达式) -->
        <!-- 注意区分js表达式和js代码,{{放js表达式}} 
        
        1.表达式:一个表达式会生成一个值,可以放在任何一个需要值的地方
            (1)a
             (2) a + b
             (3) function(1)
             (4) x === y ? 'a' : 'b'
        2.js代码(语句):
            (1) if
            (2) for
        -->
        <h2>我是 {{name}} 公司的CEO {{comp}},{{1+5}},{{Date.now()}} </h2>
    </div>

    <script type="text/javascript">
        // 阻止vue产生提示
        Vue.config.productionTip = false

        // 创建vue实例
        const vm = new Vue({
            // el(element),这里用于指定当前vue为哪个容器服务,通常为css选择器字符串
            // 这里的通常也就是说还有其他写法,只是不常用如下所示
            // el:document.getElementById('root')
            el:'#root',
            data:{
                // data中用于存储数据
                // 数组给el指定的容器使用,其他的容器无法使用
                // 在以后使用组件之后,data就不是对象的形式了,是函数
                name:'WenJGo',
                comp:'Masoul科技有限公司'
            }
        })
    </script>
    
</body>
</html>

        如果不采用id选择器,而采用类选择器,有相同的class的话vue只会解析第一个

        一个容器若有多个vue实例,则只采用第一个vue容器,所以容器和vue实例是一对一的关系


3.Vue模版语法

(1)插值语法:适合写在标签体里的内容

<h1>标签体</h1>

(2)指令语法:适合用于解析标签(v-bind用于解析标签属性)

<h1 x="标签属性">标签体</h1>

下面是详细解释:

        Vue的标签语法和指令语法是Vue框架中常用的语法,用于在HTML模板中动态地渲染数据和操作DOM元素。

  1. 标签语法 Vue使用双大括号 {{}} 来绑定数据,将数据动态渲染到HTML中。例如:
<div>
  <p>{{ message }}</p>
</div>

其中message是Vue实例中的一个数据,它将动态地渲染到<p>标签中。

  1. 指令语法 指令是Vue中用于操作DOM元素的方法,以v-开头。常用的指令有v-model、v-bind和v-on。
  • v-model指令用于在表单元素上实现双向数据绑定。例如:
<input v-model="message" type="text">

        其中message是Vue实例中的一个数据,当用户在输入框中输入内容时,会自动更新到message中,反之亦然。

  • v-bind指令用于将Vue实例中的数据绑定到HTML元素的属性上。例如:
<img v-bind:src="imageUrl">

其中imageUrl是Vue实例中的一个数据,它将绑定到<img>标签的src属性上。

  • v-on指令用于监听DOM事件,并在触发时调用Vue实例中的方法。例如:
<button v-on:click="handleClick">Click me!</button>

        当用户点击按钮时,会调用Vue实例中的handleClick方法。

        除了上述常用的指令外,Vue还提供了许多其他指令,如v-if、v-for、v-show等,可以实现更丰富的操作和逻辑控制。


示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>模版语法</title>

    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 准备好一个容器 -->
    <div id="root">
        <h1>插值语法</h1>
        <h4>你好,{{name}}</h4>

        <hr/>
        <h1>指令语法</h1>
        <!-- 加上v-bind:之后,vue会把""中的东西当做表达式执行 -->
        <a v-bind:href="url.toUpperCase()" v-bind:x="gogogo">
            点击去学习{{name}}的人工智能文章嘿嘿
        </a>
        <!-- v-bind:的简写 -->
         <!-- 'v-bind:' 可以简写为 ' : '-->
        <a :href="url2">
            点击去学习{{school.name}}的另一个人工智能文章嘿嘿
        </a>

        <a :href="Date.now()">
            时间戳
        </a>
    </div>


</body>
<script type="text/javascript">
    Vue.config.productionTip = 'false'

    new Vue({
        el:'#root',
        data:{
            name:'WenJGo111',
            url:'https://blog.csdn.net/DDDDWJDDDD/article/details/141531378?spm=1001.2014.3001.5501',
            url2:'https://blog.csdn.net/DDDDWJDDDD/article/details/138379882',
            gogogo:'yesyessss',
            school:{
                name:'WenJGo222'
            }
        }
    })
</script>
</html>

4.数据绑定

        v-bind是Vue中的一个指令,用于将Vue实例中的数据绑定到HTML元素的属性上,实现单向数据绑定。

例如,我们可以使用v-bind将Vue实例中的一个数据绑定到一个图片的src属性上:

<img v-bind:src="imageUrl">

        在这个例子中,属性绑定是单向的,即Vue实例中的数据发生变化时,会自动更新到绑定的属性上,但是如果用户修改了src属性的值,不会自动反映到Vue实例中的数据上。

        而v-model是Vue中的另一个指令,用于实现双向数据绑定。它可以将表单元素的值与Vue实例中的数据进行双向绑定,实现数据的即时更新。

        例如,我们可以在一个输入框中使用v-model指令来绑定Vue实例中的一个数据:

<input v-model="message" type="text">

        这样,当用户在输入框中输入内容时,Vue实例中的message数据会自动更新,反之亦然。这就是双向绑定,数据的变化会自动更新到视图,视图的变化也会自动更新到数据。

        需要注意的是,v-model指令只能用于表单元素上,如输入框、复选框、单选框等,而且有一些特殊用法,如在复选框中使用v-model可以绑定一个数组,实现多选功能。

        总结起来,v-bind实现了单向数据绑定,将Vue实例中的数据绑定到HTML元素的属性上;而v-model实现了双向数据绑定,将Vue实例中的数据与表单元素的值进行双向绑定,使数据的变化能够即时反映到视图,并且视图的变化也能够即时更新到数据。

示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据绑定</title>

    <script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body>
    <!-- 
    v-bind:是一个单向的数据绑定,可从data中读取数据
    但是不可以影响data中的数据 

    v-model:是一个双向的数据绑定,可从data中读取数据
    也可以影响data中的数据 
    -->
    <div id="root">
        单向数据绑定:<input type="text" v-bind:value="name">
        <br>
        双向数据绑定:<input type="text" v-model:value="name">
        <br>
        <h2 v-bind:x="name">你好啊</h2>
        <!-- 这里会报错,因为v-model不支持h2 
        因为v-model只能应用在表单类元素
        (输入类元素:input,单选多选框等)上 
        这些元素都有value值,v-model就是影响value的
        -->
        <!-- v-model:value可以简写为v-model因为v-model默认搜集的就是value值 -->
        <h2 v-model:x="name">你好啊</h2>
    </div>
    
</body>

<script type="text/javascript">
    Vue.config.productionTip = false

    new Vue({
        el:'#root',
        data:{
            name:'WenJGo'
        }
    })
</script>
</html>

5.el与data的两种写法

  1. el的两种写法: a) 在创建Vue实例时配置el属性。 b) 先创建Vue实例,然后通过vm.$mount('#root')指定el的值。

  2. data的两种写法: a) 对象式:将data选项设置为一个普通的JavaScript对象。 b) 函数式:将data选项设置为一个返回对象的函数。

        如何选择写法: 目前可以选择任意一种写法,但是在学习到组件时,必须使用函数式写法,否则会报错。

  1. 一个重要的原则: 由Vue管理的函数不能使用箭头函数,如果使用了箭头函数,this将不再指向Vue实例。

示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>el与data的两种写法</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body>

    <div id="root">
        <h1>你好,{{name}}</h1>
    </div>
    
    <div id="app">
        <h1>你好,{{name}}</h1>
    </div>

</body>

<script type="text/javascript">
    Vue.config.productionTip = false
    const v = new Vue({
        // 第一种el写法
        // el:'#root',
        data:{
            name:'WenJGo'
        }
    })

    console.log(v)
    setTimeout(() =>{
        // 这种写法比较灵活,比如这里可以等1s再动
        // 第二种el写法
        v.$mount('#root')
        // mount
    },1000);

    // data的两种写法
    new Vue({
        el:'#app',
        // data的第一种写法,对象的形式
        // data:{
        //     name:'masoul'
        // }

        // data的第二种写法,函数的形式
        data(){
            // data:function(){:这里的this发现是vue实例对象
            // data:()=>{:这里的this发现是全局的window
            // 所以这里直接写成data:function(){可以简化为data(){
            
            console.log('@@@',this)
            return{
                name:'MASOUL'
            }
        }
    })

</script>
</html>


总结

        大家继续加油,下面会更新MVVM模型等后续的vue知识。

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

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

相关文章

自己动手写CPU_step5_移动指令

移动操作指令 define EXE_MOVN 6b001011 //不等于0转移 if rt ! 0 then rs -> rd define EXE_MOVZ 6b001010 //等于0转移 if rt 0 then rs -> rd define EXE_MFHI 6b010000 // hi -> rd define EXE_MFLO 6b010010 // lo…

一步迅速了解Spring框架的几个特点

一&#xff0c;特点1&#xff1a;IOC(控制反转) 1&#xff0c;IOC是什么 反转控制”(Inverse of Control) 不是什么技术&#xff0c;而是一种设计思想&#xff0c;就是将原本在程序中手动创建对象的控制权&#xff0c;交由 Spring 框架来管理 2&#xff0c;IOC的作用 IOC 容器…

tensor core实现矩阵乘法的详细解读

之前关于tensor core的介绍可以参考链接添加链接描述 基础的tensor core实现C=AB的代码可以参考下面这段内容: 上面代码的几个注意事项: 首先是加载mma.h头文件,这个是包含wmma模板类的头文件。 其次是设置的WMMA_M=16,WMMA_N=16,WMMA_K=8,这三个参数的表示的意思是,对于…

乐凡三防:工业界的硬核产品——重新定义三防平板的极限

在工业4.0的浪潮中&#xff0c;科技与制造业的深度融合催生了一系列高性能、高耐用的智能产品。乐凡三防平板&#xff0c;作为工业界的新宠&#xff0c;正以其卓越的防护性能和强大的功能&#xff0c;重新定义了三防平板的极限&#xff0c;成为硬核科技的代表。 硬核防护&#…

Marching Cubes 算法三探

Marching Cubes 算法再探 CUDA SamplesMarchingCubesworkflowCodedata structurecomputeIsosurfacelaunch_classifyVoxelclassifyVoxel ThrustScanWrapperlaunch_compactVoxelscompactVoxels launch_generateTriangles2generateTriangles2 improvements 初探再探三探&#xff0…

翻译软件推荐:有道翻译及其他选择!

一款好的翻译软件不仅能帮助我们跨越语言障碍&#xff0c;还能提升我们的工作效率。今天&#xff0c;我将为大家深入介绍几款亲测好用的翻译工具&#xff1a;福昕在线翻译、福昕翻译客户端、海鲸AI翻译以及有道翻译。 福昕在线翻译 链接&#xff1a; https://fanyi.pdf365.cn…

write your own xx-starter【1】

在springboot 中&#xff0c;我们加入例如mybatis-spring-boot-starter&#xff0c;接着在application.yml配置数据库信息&#xff0c;就可以使用mybatis了&#xff0c;无需我们手动进行配置 这就是springboot威力&#xff0c;那么他是如何实现的呢&#xff1f;简单来说类似于…

Java面向接口编程—习题

Java面向接口编程—习题 Java面向接口编程—习题 Java面向接口编程—习题需求实现思路具体步骤1.步骤一:创建接口2.步骤2&#xff1a;创建接口的实现类3.步骤3&#xff1a;创建一个厂商4.步骤四&#xff1a;创建测试类 需求 说明采用面向接口编程思想组装一台计算机计算机的主…

【RabbitMQ工作原理相关】

RabbitMQ如何保证消息不丢失 开启生产者确认机制,确保生产者的消息能到达队列开启持久化功能,确保消息未消费前在队列中不会丢失开启消费者确认机制为auto,由spring确认消息处理成功后完成ack开启消费者失败重试机制,多次重试失败后将消息投递到异常交换机,交由人工处理 Rabb…

Linux Debian12安装Peek录屏软件,录制gif动态图

一、Peek安装 在Debian 12 (codenamed “Bookworm”) 上安装 Peek 录屏软件&#xff0c;可以通过以下步骤进行&#xff1a; 1.打开终端。 2.更新系统的包索引&#xff1a; sudo apt update3.安装 Peek 的依赖项&#xff1a; sudo apt install peek如果你遇到问题&#xff…

【大模型LLMs】文本分块Chunking调研LangChain实战

【大模型LLMs】文本分块Chunking调研&LangChain实战 Chunking策略类型1. 基于规则的文本分块2. 基于语义Embedding分块3. 基于端到端模型的分块4. 基于大模型的分块 Chunking工具使用&#xff08;LangChain&#xff09;1. 固定大小分块&#xff08;字符&token&#xff…

IC-Light还原细节的节点 DetailTransfer使用时报错-comfyui

&#x1f388;问题描述 今天在调试一个工作流节点的时候&#xff0c;遇到一个问题&#xff1a; Error occurred when executing DetailTransfer: The size of tensor a (848) must match the size of tensor b (853) at non-singleton dimension 2 File "F:\ComfyUI-aki\…

Volvo EDI 项目测试流程详解

近期知行帮助多个供应商成功对接Volvo EDI&#xff0c;这些案例中&#xff0c;供应商收到Volvo发来的EDI需求是基本一致的&#xff1a; 传输协议选择OFTP报文标准选择EDIFACT业务单据包括&#xff1a;DELFOR交付预测以及DESADV发货通知 扩展阅读&#xff1a;汽车EDI&#xff…

车规级CAN总线外围电路设计方案

目录 1、共模电感 1.1、电感值 1.2、泄漏电感 1.3、直流电阻 1.4、CMC的模式转换特性 2、终端分立电阻 3、总线电容 4、ESD保护二极管 在汽车领域&#xff0c;电磁兼容性&#xff08;EMC&#xff09;问题一直备受瞩目。相较于传统汽车&#xff0c;新能源汽车的EMC挑战更…

如何使用ssm实现社区智慧养老监护管理平台+vue

TOC ssm270社区智慧养老监护管理平台vue 系统概述 1.1 研究背景 智慧养老是面向居家老人、社区及养老机构的传感网系统与信息平台&#xff0c;并在此基础上提供实时、快捷、高效、低成本的&#xff0c;物联化、互联化、智能化的养老服务。 随着科技进步&#xff0c;新型养…

无法启动此程序,因为计算机中丢失dll,整理了7种解决方法!

当电脑出现“无法启动此程序&#xff0c;因为计算机中丢失dll”的错误弹窗时&#xff0c;这通常意味着系统中的DLL文件出现了缺失或错误。DLL文件是动态链接库文件&#xff0c;它们在软件运行中起着至关重要的作用。 造成dll文件缺失和错误的原因有很多&#xff0c;大部分问题都…

git clone 别人的项目上传到自己的Gitee或者github仓库

git clone别人的项目 git clone https://github.com/wohuweixiya/yft-design.git 进入该项目内&#xff0c;删除原有的.git信息 rm -r .git 初始化.git git init 将本地代码添加到仓库 git add . git commit -m "提交仓库说明" Github上新建一个和这个clone下来…

【快速选择算法】解决TopK问题中前K小的数字问题

目录 1.前言2.题目简介3.求解思路4.示例代码 1.前言 在一个数组中找到这个数组前K小的数字有三种方式&#xff1a; 排序 O(N*logN)堆排序&#xff1a;建立一个k个大小的大堆(如果是找前K大的数字的话用小堆) O(N*logK)快速选择算法&#xff1a;原地交换数字&#xff0c;使得该…

数据结构---单链表(常见的复杂操作)

目录 一、单链表 1.1.查找中间元素 1.2.查找倒数第K个节点 1.3.链表倒置 1.4.冒泡排序 1.5.选择排序 1.6.环&#xff0c;确认有环单链表的环入口和环大小 二、总结 一、单链表 1.1.查找中间元素 定义两个指针&#xff0c;分别指向第一个元素&#xff0c;第一个指针每次向后…

开源的工作流系统突出优点总结

当前&#xff0c;想要实现高效率的办公&#xff0c;可以一起来了解低代码技术平台、开源的工作流系统的相关特点和功能优势。作为较受职场喜爱的平台产品&#xff0c;低代码技术平台拥有可视化才做界面、灵活、好维护操作等多个优势特点&#xff0c;在推动企业流程化办公的过程…