【模板语法+数据绑定+el与data的两种写法+MVVM模型】

news2024/11/27 5:23:45

模板语法+数据绑定+el与data的两种写法+MVVM模型

  • 1 模板语法
    • 1.1 插值语法
    • 1.2 指令语法
  • 2 数据绑定
    • 2.1 单向数据绑定
    • 2.2 双向数据绑定
  • 3 el与data的两种写法
  • 4 MVVM模型

1 模板语法

1.1 插值语法

  • 双大括号表达式
  • 功能:用于解析标签体内容
  • 语法:{{xxx}},xxxx 会作为 js 表达式解析

1.2 指令语法

  • 以 v- 开头
  • 功能:解析标签属性、解析标签体内容、绑定事件
  • 举例:v-bind:href = 'xxxx',xxxx 会作为 js 表达式被解析
  • v-bind可简写为:
  • 说明:Vue 中有有很多的指令,此处只是用 v-bind 举个例子
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>模板语法</title>
    <!-- 引入Vue -->
    <script src="../JS/vue.js"></script>
</head>
<body>
    <!-- 总结
		Vue模板语法有2大类:
			1.插值语法:
				功能:用于解析标签体内容。
				写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性。
			2.指令语法:
				功能:用于解析标签(包括:标签属性、标签体内容、绑定事件.....)。
				举例:v-bind:href="xxx" 或简写为 :href="xxx",xxx同样要写js表达式,且可以直接读取到data中的所有属性。
				备注:Vue中有很多的指令,且形式都是:v-????,此处我们只是拿v-bind举个例子。
	-->

    <!-- 准备好一个容器 -->
    <div id="root">
        <h1>插值语法</h1>
        <h3>你好,{{name}}</h3>
        <hr/>
        <h1>指令语法</h1>
        <!-- <a v-bind:href="url">点我去小王CSDN1</a>  加了v-bind 引号内的会当作js表达式执行 -->
        <!-- <a :href="url">点我去小王CSDN2</a> -->
        
        <a v-bind:href="school.url">点我去{{school.name}}CSDN1</a>
        <a :href="school.url">点我去{{school.name}}CSDN2</a>
    </div>
</body>
<script>
    Vue.config.productionTip = false // 阻止Vue在启动时生成生产提示

    new Vue({
        el:'#root',
        data:{
            name:'jack',
            school:{
                name:'小王',
                url:'https://blog.csdn.net/weixin_64875217?type=blog'
            }
        }
    })
</script>
</html>

在这里插入图片描述

2 数据绑定

2.1 单向数据绑定

  • 语法:v-bind:href ="xxx"或简写为:href
  • 特点:数据只能从 data 流向页面
    在这里插入图片描述

2.2 双向数据绑定

  • 语法:v-mode:value="xxx"或简写为v-model="xxx"
  • 特点:数据不仅能从 data 流向页面,还能从页面流向 data
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据绑定</title>
    <!-- 引入Vue -->
    <script src="../JS/vue.js"></script>
</head>
<body>
    <!--总结
		Vue中有2种数据绑定的方式:
			1.单向绑定(v-bind):数据只能从data流向页面。
			2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data。
				备注:
					1.双向绑定一般都应用在表单类元素上(如:input、select等)
					2.v-model:value 可以简写为 v-model,因为v-model默认收集的就是value值。
	-->

    <!-- 准备好一个容器 -->
    <div id="root">
        <!-- 普通写法 -->
        单向数据绑定:<input type="text" v-bind:value="name"><br/>
        双向数据绑定:<input type="text" v-model:value="name"><br/>

        <!-- 简写 -->
        <!-- 单向数据绑定:<input type="text" :value="name"><br/> -->
        <!-- 双向数据绑定:<input type="text" v-model="name"><br/> -->

        <!-- 如下代码是错误的,因为v-model只能应用在表单类元素(输入类元素)上 比如:input、单选框、多选框、select框、多行输入等,这些的共同点是都有value值-->
        <!-- <h2 v-model:x="name">你好啊</h2> -->
    </div>
</body>
<script>
    Vue.config.productionTip = false // 阻止vue在启动时生成生产提示

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

3 el与data的两种写法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>el与data的两种写法</title>
    <!-- 引入Vue -->
    <script src="../JS/vue.js"></script>
</head>
<body>
    <!--总结
		data与el的两种写法
			1.el有2种写法
				(1).new Vue时候配置el属性。
				(2).先创建Vue实例,随后再通过vm.$mount('#root')指定el的值。
			2.data有2种写法
				(1).对象式
				(2).函数式
				如何选择:目前哪种写法都可以,以后学习到组件时,data必须使用函数式,否则会报错。
			3.一个重要的原则:
				由Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不再是Vue实例了。
	-->

    <!-- 准备好一个容器 -->
    <div id="root">
        <h1>您好,{{name}}</h1>
    </div>
</body>
<script>
    Vue.config.productionTip = false // 阻止vue在启动时生成生产提示

    // el的两种写法
    /* const v = new Vue({
        // el: '#root', // 写法一
        data: {
            name:'小王'
        }
    })
    console.log(v);

    v.$mount('#root') // 写法二 */


    // data的两种写法
    new Vue({
        el: '#root',
        // data的第一种写法:对象式
        /* data: {
            name:'小王'
        } */

        // data的第二种写法:函数式
        data:function() {
            console.log('@@@',this); // 此处的this是Vue实例对象
            return{
                name:'小王'
            }
        }
    })
</script>
</html>

在这里插入图片描述

4 MVVM模型

  • M:模型(Model) :对应 data 中的数据
  • V:视图(View) :模板
  • VM:视图模型(ViewModel) : Vue 实例对象
    在这里插入图片描述
    在这里插入图片描述
<!--总结
		MVVM模型
			1. M:模型(Model) :data中的数据
			2. V:视图(View) :模板代码
			3. VM:视图模型(ViewModel):Vue实例
		观察发现:
			1.data中所有的属性,最后都出现在了vm身上。
			2.vm身上所有的属性 及 Vue原型上所有属性,在Vue模板中都可以直接使用。
-->

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

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

相关文章

Postman的高级用法—Runner的使用

1.首先在postman新建要批量运行的接口文件夹&#xff0c;新建一个接口&#xff0c;并设置好全局变量。 2.然后在Test里面设置好要断言的方法 如&#xff1a; tests["Status code is 200"] responseCode.code 200; tests["Response time is less than 10000…

分子相互作用的人工智能

8 分子相互作用的人工智能 正如在第 5、6 和 7 节中所描述的那样&#xff0c;人工智能已经彻底改变了分子学习、蛋白质科学和材料科学领域。尽管已经广泛研究了用于单个分子的人工智能&#xff0c;但分子的物理和生物功能通常是由它们与其他分子的相互作用驱动的。在本节中&am…

iPhone数据丢失怎么办?9 佳免费 iPhone 数据恢复软件可收藏

您是否知道有多种原因可能导致 iPhone 上存储的数据永久丢失&#xff1f;然而&#xff0c;使用一些最好的免费 iPhone 数据恢复软件&#xff0c;您仍然可以恢复它。 由于我们几乎总是保存手机上的所有内容&#xff08;从联系人到媒体文件&#xff09;&#xff0c;因此 iPhone …

MySQL学习笔记27

MySQL主从复制的核心思路&#xff1a; 1、slave必须安装相同版本的mysql数据库软件。 2、master端必须开启二进制日志&#xff0c;slave端必须开启relay log 日志。 3、master主服务器和slave从服务器的server-id号不能一致。 4、slave端配置向master端来同步数据。 master…

【Java 进阶篇】MySQL 数据控制语言(DCL):管理用户权限

MySQL 是一个强大的关系型数据库管理系统&#xff0c;提供了丰富的功能和选项来管理数据库和用户。数据库管理员&#xff08;DBA&#xff09;通常使用数据控制语言&#xff08;Data Control Language&#xff0c;简称 DCL&#xff09;来管理用户的权限和访问。 本文将详细介绍…

基于php+MySql实现简易留言板(超级详细!)

基于phpMySql实现简易留言板&#xff08;超级详细&#xff01;&#xff09; 这篇文章是基于PHP和MySQL实现的一个简易留言板。该留言板具有用户注册、登录、发表留言以及查看留言等功能。首先&#xff0c;用户可以通过注册功能创建自己的账号&#xff0c;然后使用该账号进行登…

WPF 实现点击按钮跳转页面功能

方法1. 配置环境 首先添加prism依赖项&#xff0c;配置好所有文件。需要配置的有两个文件&#xff1a;App.xaml.cs和App.xaml App.xaml.cs using System.Data; using System.Linq; using System.Threading.Tasks; using System.Windows;namespace PrismDemo {/// <summa…

Linux 集锦 之 最常用的几个命令

Linux最常用的几个命令 ​ Linux系统中的命令那是相当地丰富&#xff0c;不同的版本可能还有不同的命令&#xff0c;不过Linux核心自带的命令大概有几百个&#xff0c;这个不管是什么发行版一般都是共用的。 ​ 如果希望探索Linux的所有命令&#xff0c;可能不太实际&#xf…

【Unity Build-In管线的SurfaceShader剖析_PBS光照函数】

Unity Build-In管线的SurfaceShader剖析 在Unity Build-In 管线&#xff08;Universal Render Pipeline&#xff09;新建一个Standard Surface Shader文件里的代码如下&#xff1a;选中"MyPBR.Shader"&#xff0c;在Inspector面板&#xff0c;打开"Show generat…

力扣刷题-哈希表-求两个数组的交集

349 求两个数组的交集 题意&#xff1a;给定两个数组&#xff0c;编写一个函数来计算它们的交集。注意&#xff1a;输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 提示&#xff1a; 1 < nums1.length, nums2.length < 1000 0 < nums1[i], …

TensorFlow-Federated简介与安装

1、简介 TensorFlow Federated&#xff08;TFF&#xff09;是一个用于机器学习和其他分布式数据计算的开源框架。TFF 的开发旨在促进联邦学习 &#xff08;FL&#xff09;的开放研究和实验。联邦学习是一种机器学习方法&#xff0c;其中一个共享的全局模型在许多参与的客户之间…

集线器与交换机有什么区别?一文带你了解

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 梦想从未散场&#xff0c;传奇永不落幕&#xff0c;博主会持续更新优质网络知识、Python知识、Linux知识以及各种小技巧&#xff0c;愿你我共同在CSDN进步 目录 一、集线器 1. 集线器是什么&#xff1f; 2. …

高并发时代到底是Go还是Java?

作为一名用过Java和Go开发过微服务架构程序的在校学生的角度思考&#xff0c;本文将从以下几个方便来讲述Go和Java的区别。 前言 小明&#xff1a;听说Go在天然情况下支持并发 小红&#xff1a;我不管Java就是最好的语言 小明&#xff1a;不行&#xff0c;我要学以下神秘的Go…

vue3 element-ui-plus Carousel 跑马灯 的使用 及 踩坑记录

vue3 element-ui-plus Carousel 跑马灯 的踩坑记录 Carousel 跑马灯首页跑马灯demo Carousel 跑马灯 首先&#xff0c;打开其官网-跑马灯案例 跑马灯代码&#xff1a; <el-carousel :interval"5000" arrow"always"><el-carousel-item v-for"…

“智慧时代的引领者:探索人工智能的无限可能性“

目录 一.背景 二.应用 2.1金融领域 2.2医疗领域 2.3教育领域 三.发展 四.总结: 一.背景 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;&#xff0c;是指通过计算机程序模拟人类智能的一种技术。它是计算机科学、工程学、语言学、哲学等多…

Halcon 从基础到精通-01- 基本概念

1 HALCON Architecture 【图一】 HALCON的架构如上&#xff0c;其主要的部分&#xff0c;就是图像处理库。 2 HALCON的基本架构 2.1 Operators HALCON库功能的使用都是通过【operators】操作符来实现的。绝大多数的操作符由多种方法构成&#xff0c;具体可以参考给出的下面…

【开发篇】十、Spring缓存:手机验证码的生成与校验

文章目录 1、缓存2、用HashMap模拟自定义缓存3、SpringBoot提供缓存的使用4、手机验证码案例完善 1、缓存 缓存是一种介于数据永久存储介质与数据应用之间的数据临时存储介质使用缓存可以有效的减少低速数据读取过程的次数&#xff08;例如磁盘IO&#xff09;&#xff0c;提高…

驱动插入中断门示例代码

驱动插入中断描述符示例代码 最近做实验&#xff0c;每次在应用层代码写测试代码的时候都要手动挂一个中断描述符&#xff0c;很不方便所以就想着写个驱动挂一个中断门比较省事 驱动测试效果如下&#xff1a; 下面的代码是个架子&#xff0c;用的时候找个驱动历程传递你要插…

wvp-GB28181-pro windows系统编译安装的坑:录像功能不能正常使用

说明 wvp-GB28181-pro 只是包含了实时视频的接入功能&#xff1b; GitHub - 648540858/wvp-GB28181-pro: WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的网络视频平台&#xff0c;支持NAT穿透&#xff0c;支持海康、大华、宇视等品牌的IPC、NVR、DVR接入。支持国标级联…

“构建高效的前端表单验证与增删改功能实现“

目录 引言1. 基础增删改功能代码展示后端代码 2. 表单验证基本表单验证自定义验证规则 总结 引言 在现代Web开发中&#xff0c;前端表单验证和增删改功能是不可或缺的核心要素。本文将介绍如何使用ElementUI库来实现高效的前端表单验证和增删改功能。我们将从基础开始&#xf…