Vue.js学习笔记

news2024/11/19 3:21:07

vue.js学习笔记

Vue.js 是一款流行的 JavaScript 前端框架,Vue 所关注的核心是 MVC 模式中的视图层,它也方便地获取数据更新,实现视图与模型的交互。

1.创建代码片段

声明式渲染:Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统。核心思想就是没有繁琐的DOM操作,例如jQuery中,我们需要先找到div节点,获取到DOM对象,然后进行一系列的节点操作。

为了方便学习vue,首先创建代码片段,文件 => 首选项 => 用户片段 => 新建全局代码片段文件,命名格式为vue-html.code-snippets 。

{
	"vue htm": {
		"scope": "html",
		"prefix": "vuehtml",
		"body": [
			"<!DOCTYPE html>",
			"<html lang=\"en\">",
			"",
			"<head>",
			"    <meta charset=\"UTF-8\">",
			"    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
			"    <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">",
			"    <title>Document</title>",
			"</head>",
			"",
			"<body>",
			"    <div id=\"app\">",
			"     {{message}}",
			"    </div>",
			"    <script src=\"vue.min.js\"></script>",
			"    <script>",
			"        new Vue({",
			"            el: '#app',",
			"            data: {",
      "            message: 'hello Vue !'",
      "         }",
			"        })",
			"    </script>",
			"</body>",
			"",
			"</html>",
		],
		"description": "my vue template in html"
	}
}

“prefix”: "vuehtml"设置后,输入vuehtml即可生成代码片段。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div id="app">
     {{message}}
    </div>
    <script src="vue.min.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
            message: 'hello Vue !'
         }
        })
    </script>
</body>

</html>

2.单向数据绑定v-bind

vue指令语法:v-指令名称。

v-bind 用在标签属性上面,通过指令获取data定义变量值,简写方式:直接使用一个冒号 “ : ”。

<body>
    <script src="vue.min.js"></script>
    <div id="app">
      <span v-bind:style="msg">parker7</span>
      <span :style="msg">parker7</span>  <!-- 简写 -->
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
            msg: 'color:green;'
         }
        })
    </script>
</body>

3.双向数据绑定v-model

双向绑定:当数据发生变化的时候,视图也会跟着发生变化;当视图发生变化的时候,数据也会跟着同步变化。

<body>
    <script src="vue.min.js"></script>
    <div id="app">
      {{keyword}}
      <br>
      <input type="text" v-bind:value="keyword"/>
      <br>
      <input type="text" v-model:value="keyword"/>
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
            keyword: 'parker7'
         }
        })
    </script>
</body>

在这里插入图片描述

4.事件v-on

语法 v-on:事件名称=“调用方法”。

使用 v-on 进行数据处理,v-on:click 表示处理鼠标点击事件。其他事件调用方式同理,事件调用的方法定义在 vue 对象声明的 methods 节点中。

其中 v-on:click=“func()” 也可以使用写法二 @click=“func()” 。

<body>
    <script src="vue.min.js"></script>
    <div id="app">
      <button v-on:click="show()">事件绑定写法1</button>
      <button @click="show()">事件绑定写法2</button>
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
            
         },
         methods: {
           show() {
             console.log("show...")
           }
         }
        })
    </script>
</body>

5.条件渲染v-if、v-else

条件指令v-if:条件判断,搭配v-else。和之前学过的jsp的c:if、c:else很类似。

<body>
    <script src="vue.min.js"></script>
    <div id="app">
      <input type="checkbox" v-model="isOk">
      <br>
      <div v-if="isOk">checkbox被选中了</div>
      <div v-else>checkbox没有被选中</div>
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
              isOk : false
         }
        })
    </script>
</body>

6.列表渲染v-for

实际就是循环指令。

<body>
    <script src="vue.min.js"></script>
    <div id="app">
      <!-- 循环指令 -->
      <div v-for="user in userList">
        {{user.name}} ------- {{user.number}}
      </div>
      <!-- 获取索引index,index从0开始 -->
      <div v-for="(user,index) in userList">
        {{index}} ---------- {{user.name}} ------- {{user.number}}
      </div>
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
              userList : [{"name":"parker","number":7},{"name":"zhangsan","number":10}]
         }
        })
    </script>
</body>

打印结果:

parker ------- 7

zhangsan ------- 10

0 ---------- parker ------- 7

1 ---------- zhangsan ------- 10

7.vue的生命周期

vue生命周期

created() 方法,在页面渲染之前执行。

mounted() 方法,在页面渲染之后执行。

updated() 方法、destroyed() 方法同理。

方法定义在 vue 对象中,插入 debugger 关键字可以在浏览器中进行断点调试(chrome浏览器需要ctrl+b开启)。

<body>
    <script src="vue.min.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
              
         },
         created () { //在页面渲染之前执行
           debugger
           console.log('created...')
         },
         mounted () { //在页面渲染之后执行
          debugger
           console.log('mounted...')
         }
        })
    </script>
</body>

8.axios发送ajax请求

除了导入vue.js,使用axios还需要导入axios.js。

axios发送请求的语法如下:

axios.get("请求的接口路径")  //可以为.json文件,也可以为请求路径http://localhost:8080/...
	.then()
	.catch()

第一步,模拟后端发来的json数据,创建user.json文件。

{
  "code":200,
  "message":"成功",
  "data":{
    "users":[
      {"name":"parker","number":7},
      {"name":"zhangsan","number":10},
      {"name":"lisi","number":9}
    ]
  }
}

第二步,编写js,接受json数据。

<body>
    <script src="vue.min.js"></script>
    <script src="axios.min.js"></script>

    <div id="app">
      <!--表格-->
      <table>
        <tr v-for="user in userList">
          <td>{{user.name}}</td>
          <td>{{user.number}}</td>
        </tr>
      </table>
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
            userList:[] //初始化一个空的userList数组
         },
         created () { //在页面渲染之前执行
           //页面一开始就会调用此方法,得到返回json数据
           this.getList()
         },
         methods: {
           getList() {
             //使用axios方式发出ajax请求
             axios.get("user.json") //.get和.post来发出请求
             .then(response => { //.then请求成功时运行,response对象中带有请求信息和数据
              console.log(response)
              this.userList = response.data.data.users //通过response中的层级结构来访问json数据
              console.log(this.userList) //userList需要加this,来表示使用的是vue的data结点中的数据
             })
             .catch(error => { //.catch请求出错时运行,error对象中包含错误信息
              console.log(error) 
             })
           }
         }
        })
    </script>
</body>

页面成功打印
在这里插入图片描述

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

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

相关文章

kafka开kerberos认证报错the client is being asked for a password

Kafka kerberos认证错误记录TOC kafka开发调试 kerberos认证错误记录 背景 kafka 开发调试&#xff0c;开 kerberos情况下遇到的错误。 错误日志 Could not login: the client is being asked for a password, but the Kafka client code does not currently support obta…

隐私计算主流技术

隐私计算目前主流的技术路线有三种:多方安全计算、联邦学习和TEE。 1. MPC多方安全计算 百万富翁问题: 两个富翁,分别为张三和李四,他们自己都清楚自己有几千万财产即他们心里清楚 1~10中的一个数(代表自己千万级的财富)。他们想知道到底谁的数更大一些。 1.1 MPC定义 …

【博学谷学习记录】大数据课程-学习第三周总结

1. 大数据课程导论 数据分析的前提是有数据&#xff0c;数据存储的目的是支撑数据分析。究竟怎么去存储庞大的数据量&#xff0c;是开展数据分析的企业在当下面临的一个问题。传统的数据存储模式存储容量是有大小限制或者空间局限限制的&#xff0c;怎么去设计出一个可以支撑大…

【UE4 第一人称射击游戏】49-僵尸攻击动画

上一篇&#xff1a;【UE4 第一人称射击游戏】48-僵尸死亡设置本篇效果&#xff1a;可以看到僵尸在移动到玩家面前会从移动状态转为攻击状态&#xff0c;播放相应的攻击动画。步骤&#xff1a;打开“SimpleAI”&#xff0c;删除所有和“Character看见pawn时”、“AI随机移动”的…

动态规划算法刷题笔记【背包问题】

01背包问题 dp[i-1][j]指没纳入当前物品&#xff0c;dp[i-1][j-ci]wi指纳入当前物品&#xff0c;并且是和j-ci体积下的价值作和 滚动数组优化空间复杂度 [NOIP2005 普及组] 采药 辰辰是个天资聪颖的孩子&#xff0c;他的梦想是成为世界上最伟大的医师。为此&#xff0c;他想拜…

基于jsp+mysql+Spring的Springboot旅游网站管理系统设计和实现

基于jspmysqlSpring的Springboot旅游网站管理系统设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末…

数据库操作——redis

数据库操作——redisredis介绍Redis、Mamcache/MongoDB对比分布式数据库的CAP原理redis的下载和安装安装之后的操作key操作数据类型字符串命令 string列表 list集合set哈希hashZset 有序集合持久化RDB相关的配置AOF相关的配置开启AOF共存AOF 相关的配置总结事务定义和执行事务的…

【Linux杂篇】Cron是什么?利用Cron Job自动执行定时任务

Cron Cron是一个实用程序&#xff0c;用于在特定的时间自动执行重复任务。在Linux中&#xff0c;常用 cron 服务器来完成这项工作&#xff0c;以下是Cron的工作原理&#xff1a; 如果想稍后执行特定任务一次&#xff0c;可以使用其他命令。但是&#xff0c;对于重复性任务&am…

模电视频笔记:详解直接耦合放大电路p146,3.1.1

一个图一个图的分析下来&#xff1a; 初始的电路原型 &#xff0c;这是把两个基本的共射放大电路组合了起来。 补充几个很重要的知识点&#xff0c;否则字都认识&#xff0c;但是完全看不懂在说什么&#xff1a; a、图中的晶体管是npn型晶体管。 b、这个电路是共射放大电路 c、…

产品经理如何更好的适应工作呢?

先来了解一下和产品经理相关的数据 大厂职能需求占比变化 岗位薪酬水平&岗位要求 产品经理市场需求现状 大厂喜欢招聘什么样的人&#xff1f; 无论是通过什么途径成为了一名产品经理&#xff0c;对于该岗位所需要的技能其实都是类似的&#xff0c;把产品经理需要具备的能力…

236. 二叉树的最近公共祖先

236. 二叉树的最近公共祖先 难度中等 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大…

【算法数据结构初阶篇】:随机函数

随即函数的用处非常大&#xff0c;比如可能用来用做对数器&#xff0c;生成大量随机的测试数据&#xff0c;用来验证我们写的程序是否有误&#xff0c;可以帮助我们快速定位存在错误的测试用例&#xff0c;进行debug。这里注意Java中的随机函数Math.random()是等概率的返回[0,1…

TCP/IP网络编程(4)——基于 TCP 的服务端/客户端(1)

文章目录第 4 章 基于 TCP 的服务端/客户端&#xff08;1&#xff09;4.1 理解 TCP 和 UDP4.1.1 TCP/IP 协议栈4.1.2 链路层4.1.3 IP 层4.1.4 TCP/UDP 层4.1.5 应用层4.1.6 生活小例子4.2 实现基于 TCP 的服务器/客户端4.2.1 TCP 服务端的默认函数的调用程序4.2.2 进入等待连接…

微信小程序原生开发功能合集一:微信小程序开发介绍

一、专栏介绍 本专栏主要内容为微信小程序常用功能开发过程的介绍说明&#xff0c;包括开发微信小程序常用组件的封装、常用功能的开发等&#xff0c;提供源代码、开发过程讲解视频、完整的课程等。 组件封装&#xff1a; 下拉选择组件、图片上传组件、视频上传组件、富文本组件…

C# Dictionary(字典)各种属性的用法

C# Dictionary(字典&#xff09;各种属性的用法 要使用Dictionary集合&#xff0c;需要导入C#泛型命名空间&#xff01; ​System.Collections.Generic​&#xff08;程序集&#xff1a;mscorlib&#xff09; Dictionary的描述 1、从一组键&#xff08;Key&#xff09;到一组值…

seo关键词排名下降怎么办(SEO网站关键词排名不稳定)

关键词优化网站排名突然下降是什么原因 一般来讲&#xff0c;网站的排名不会大幅度的下降&#xff0c;除非搜索引擎的流量特别小&#xff0c;而这也不是偶然发生的。网站一旦获得对应的权重或者排名&#xff0c;就不要轻易的更改板块和文章&#xff0c;甚至是文章标题之类的&a…

Allegro如何导出和导入层叠操作指导

Allegro如何导出和导入层叠操作指导 在做PCB设计的时候,需要导出或者导入层叠,Allegro升级到了172以后,支持单独导出和导入层叠,如下图 具体操作如下 导出层叠,选择setup选择Cross-section

《图机器学习》-Message Passing and Node Classification

Message Passing and Node Classification一、前言二、How do we leverage node correlation in network&#xff1f;三、Relational Classification四、Iterative classification五、Loopy Belief Propagation一、前言 现在的主要问题是&#xff1a; 给定一个网络&#xff0c…

利用idea把项目上传到不同的仓库

前言 以项目已经创建好&#xff0c;并已经和一个远程仓库地址联通的情况下。 由于GitHub经常会出现问题&#xff0c;毕竟国外的东西&#xff0c;时常会不稳定&#xff0c;所以我们有时候也会使用国产Git代码管理工具——码云。 说真的&#xff0c;码云可真的是一个好东西。要…

SpringBoot原理-自动配置-Condition

目录 分析 通过获取 run() 的返回值再获取容器中的bean Conditional() 注解 解说案例 1.导入Jedis坐标后&#xff0c;加载该Bean&#xff0c;没导入&#xff0c;则不加载 思考 spring-boot-autoconfigure condition包 ConditionalOnClass ConditionalOnBean Conditi…