Vue 模板语法和数据绑定

news/2024/7/10 0:23:34 标签: vue

文章目录

  • 模板语法
  • 数据绑定
  • el的两种写法
  • data的两种写法

模板语法

Vue 模板语法有两大类

  1. 插值语法
    功能:用于解析标签体内容
    写法:{{xxx}},xxx是js表达式,可以读取到 data 中属性
  2. 指令语法
    功能:用于解析标签(标签属性、标签体内容、绑定事件…)
    写法:v-bind:href="xxx" 或简写为 :href="xxx",xxx是js表达式,可以读取到 data 中属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue初识</title>
    <script type="text/javascript" src="./js/vue.js"></script>
</head>
<body>
<div id="root">
    <h1>插值语法</h1>
    Hello {{name}}
    <h1>语法指令</h1>
    <a :href="url">百度</a>
</div>
<script type="text/javascript">
    new Vue({
        el:"#root",
        data:{
            name:"world",
            url:"https://www.baidu.com"
        }
    })
</script>
</body>
</html>

在这里插入图片描述

数据绑定

Vue中有2种数据绑定的方式

  1. 单向绑定(v-bind):数据只能从 data 流向页面

  2. 双向绑定(v-model):数据不仅能从 data 流向页面,还可以从页面流向data

  3. 双向绑定一般都应用在表单类元素上(如: input、select等)

  4. v-model:value 可以简写为v-model,因为 v-model 默认收集的就是 value 值

<body>
<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只能用在表单类元素上(输入类,有)-->
    <!--<h2 v-model:x="name"></h2>-->
</div>
<script type="text/javascript">
    new Vue({
        el:"#root",
        data:{
            name:"world",
        }
    })
</script>

在这里插入图片描述

el的两种写法

第一种写法

new Vue({
        el:"#root",
        data:{
            name:"world",
        }
    })

第二种写法

const x = new Vue({
        data:{
            name:"world",
        }
    })
console.log(x)
x.$mount('#root')

其中 $mount可以在打印的 vue 实例中找到
在这里插入图片描述

data的两种写法

第一种写法:对象式

new Vue({
        el: "#root",
        data: {
            name: "world",
        }
    })

第一种写法:函数式

new Vue({
        el: "#root",
        data: function () {
            //此处的this是vue实例对象
            return {
                name: 'world'
            }
        }
    })

或者

new Vue({
        el: "#root",
        data(){
            return {
                name: 'world'
            }
        }
    })

目前学习两种写法都可以,但以后学到组件,必须函数式,否则会报错

另外:不能写成箭头函数,因为 this 就不是 vue 实例对象了,而是全局 window

new Vue({
        el: "#root",
        data: ()=> {
            //此处的this是全局的window
            return {
                name: 'world'
            }
        }
    })

http://www.niftyadmin.cn/n/1816777.html

相关文章

理解MVVM和数据代理

文章目录MVVMObject.defineProperty数据代理vue 中的数据代理MVVM MVVM维基百科 虽然没有完全遵循 MVVM 模型&#xff0c;但是 Vue 的设计也受到了它的启发。因此在文档中经常会使用 vm (ViewModel 的缩写) 这个变量名表示 Vue 实例&#xff1a; const vm new Vue({... })M…

将IP地址转换为地方名称

下面这段代码将IP地址转换为地方名称&#xff0c;例如你的IP地址为 “58.24.25.65” 则显示为 “上海徐汇区” 当然转换过程中&#xff0c;需要有数据库&#xff0c;也就是这里适用的数据库是动网论坛最新版本DVBBS8.1提供的数据库&#xff0c;你可以到dvbbs下载那个论坛&#…

Vue中事件处理

文章目录事件处理事件修饰符键盘事件一些使用技巧事件处理 给按钮绑定一个 click 事件&#xff0c;点击弹出提示信息 <!--普通写法--><button v-on:click"showInfo">点我</button><!--简写--><button click"showInfo">点我…

Vue 计算属性-姓名案例

文章目录姓名案例-插值语法实现姓名案例-methods实现姓名案例-计算属性实现计算属性简写姓名案例-插值语法实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue初识</title><script typ…

[转贴]jQuery使用手册

翻译整理&#xff1a;Young.J 官方网站&#xff1a;http://jquery.com jQuery是一款同prototype一样优秀js开发库类&#xff0c;特别是对css和XPath的支持&#xff0c;使我们写js变得更加方便&#xff01;如果你不是个js高手又想写出优 秀的js效果&#xff0c;jQuery可以帮你…

Vue 监视属性-天气案例

文章目录天气案例实现两个注意事项监视属性深度监视监视的简写形式天气案例实现 <div id"root"><h2>今天天气很{{info}}</h2><button click"changeWeather">切换天气</button> </div><script type"text/javas…

也论WebForm与MVC: 我是哪种程序员?

基本上, 对MVC和WebForm的选择和感受因人而异, 瞎说了6种情况, 大过年的, 博大家一乐~Beginner:好且简单 -> WebForm, 哥们我也能写程序了耶...Bring Something On:做的更好且更清晰 -> MVC, 懂这么多还需要让别人隐藏细节的同时碍手碍脚? 俺更关注XXX.., 好处s are her…

watch 和 computed 对比-姓名案例

文章目录watch 实现computed 实现watch 实现 <div id"root">姓&#xff1a;<input type"text" v-model"firstName"><br/><br/>名&#xff1a;<input type"text" v-model"lastName"><br/&…