Vue —— 基础(零)(模板语法、数据绑定、el/data写法、MVVM模型)

简介: Vue —— 基础(零)(模板语法、数据绑定、el/data写法、MVVM模型)

一、初识 Vue

1. 在页面输出 HELLO VUE!
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>初识Vue</title>
    <!-- 引入Vue -->
    <script src="../js/vue.js"></script>
</head>
<body>
    <!-- 准备好一个容器 -->
    <div id="root">
        <h1>HELLO,{{message.toUpperCase()}}</h1>
    </div>
    <script>
        Vue.config.productionTip = false;   //阻止 vue 在启动时生成生产提示
        // 创建Vue实例 ({})只传一个参数,类型为对象(配置对象)
        new Vue({
            el: '#root',  //el用于指定当前Vue实例为哪个容器服务
            data: {     //data中用于存储数据,数据供el所指定的容器去使用,值暂时先写成一个对象
                message: 'Vue!',
            }
        })
    </script>
</body>
</html>

二、模板语法

Vue模板语法有 2 大类:

1. 插值语法

功能:用于解析标签体内容。

写法:{{xxx}}, xxx 是 js 表达式,且可以 直接读取 到 data 中的所有属性。

2. 指令语法

功能:用于解析标签(包括:标签属性、标签体内容、绑定事件…)。

举例:v-bind:href="xxx" 或 简写为 :href="xxx",xxx 同样要写 js 表达式,且可以 直接读取 到 data 中的所有属性。

3. 简写方式

v-bind 简写为 :

v-on 简写为 @

4. 实例(插值语法和指令语法)

使用插值语法 {{xxx}} 和 v-bind 指令呈现内容

    <div id="root">
        <h1>插值语法</h1>
        <h3>你好,{{name}}</h3>
        <hr/>
        <h1>指令语法</h1>
        <a v-bind:href="school.url">{{school.name}}</a>
    </div>
    <script>
        new Vue({
            el:'#root',
            data:{
                name:'八岁',
                school:{
                    name:'哔哩哔哩',
                    url:'https://www.bilibili.com/'
                }
            }
        })
    </script>

ab059810da75431db22e6ed824533bc5.png

三、数据绑定

Vue中有两种数据绑定的方式:

1. 单向数据绑定(v-bind)

数据只能从 data 流向页面。

2. 双向数据绑定(v-model)

数据不仅能从 data 流向页面,还可以从页面流向 data。

3. 注意点
  1. 双向绑定一般都应用在表单类元素上 (如:input、select等)
  2. v-model:value 可以简写为 v-model,因为 v-model 默认就是 value 值。
4. 实例(完整写法)
  <div id="root">
        单向数据绑定: <input type="text" v-bind:value="name1">{{name1}}<br/>
        双向数据绑定: <input type="text" v-model:value="name2">{{name2}}<br/>
    </div>
    <script>
        new Vue({
            el:'#root',
            data:{
                name1:'单向数据绑定',
                name2:'双向数据绑定'
            }
        })
    </script>
5. 实例(简写方式)
  <div id="root">
        单向数据绑定: <input type="text" :value="name1">{{name1}}<br/>
        双向数据绑定: <input type="text" v-model="name2">{{name2}}<br/>
    </div>
    <script>
        new Vue({
            el:'#root',
            data:{
                name1:'单向数据绑定',
                name2:'双向数据绑定'
            }
        })
    </script>

2fae46ce16b4456da2ff81ca39ab6e7c.png

四、el 和 data 的两种写法

1. el 有2种写法
  1. new Vue 时配置 el 属性。
  2. 先创建 Vue 实例,随后再通过 vm.$mount('#root') 指定el的值。
2. data有2种写法
  1. 对象式
  2. 函数式
  3. 如何选择:目前哪种方法都可以,以后学习到 组件 时,data必须使用函数式,否则会报错。
  //对象式
  data: {
  }


  //函数式
  data() {
    return {
    }
  }
3. 一个重要的原则

由 Vue 管理的函数,一定不要写箭头函数,一旦写了箭头函数,this 就不再是 Vue 实例了。

4. el 的第一种写法
  <div id="root">
        <h1>你好,{{name}}</h1>
    </div>
    <script>
        new Vue({
            el:'#root',
            data:{
                name:'vue'
            }
        })
    </script>
5. el 的第二种写法
  <div id="root">
        <h1>你好,{{name}}</h1>
    </div>
    <script>
        var v = new Vue({
            data:{
                name:'vue'
            }
        })
        v.$mount("#root") 
    </script>
6. data 的第一种写法(对象式)
  <div id="root">
        <h1>你好,{{name}}</h1>
    </div>
    <script>
        new Vue({
            el:'#root',
            data:{
                name:'vue'
            }
        })
    </script>
7. data 的第二种写法 (函数式)
  <div id="root">
        <h1>你好,{{name}}</h1>
    </div>
    <script>
        new Vue({
            el:'#root',
            data:function(){
                return{
                    name:'vue'
                }
            }
        })
    </script>

五、MVVM 模型

1. M:模型(Model)

data 中的数据

2. V:视图(View)

模板代码

3. VM:视图模型(ViewModel)

Vue 实例

4. 注意点
  1. data 中所有的属性,最后都出现在了 vm 身上。
  2. vm 身上所有的属性 及 Vue 原型上所有属性,在 Vue 模板中都可以直接使用。
  <!-- div 里面是 View -->
    <div id="root">
        <h1>学校名称:{{name}}</h1>
        <h1>学校地址:{{address}}</h1>
    </div>
    <script>
        new Vue({  // new Vue({})是 ViewModel
            el: '#root',  
            data: {     
                name: '青岛',
                address: '山东'
                // data 里面的内容是 Model
            }
        })
    </script>

不积跬步无以至千里 不积小流无以成江海

相关文章
|
10天前
|
敏捷开发 人工智能 JavaScript
Figma-Low-Code:快速将Figma设计转换为Vue.js应用,支持低代码渲染、数据绑定
Figma-Low-Code 是一个开源项目,能够直接将 Figma 设计转换为 Vue.js 应用程序,减少设计师与开发者之间的交接时间,支持低代码渲染和数据绑定。
37 3
Figma-Low-Code:快速将Figma设计转换为Vue.js应用,支持低代码渲染、数据绑定
|
25天前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
2月前
|
前端开发 JavaScript 测试技术
Vue3中v-model在处理自定义组件双向数据绑定时,如何避免循环引用?
Web 组件化是一种有效的开发方法,可以提高项目的质量、效率和可维护性。在实际项目中,要结合项目的具体情况,合理应用 Web 组件化的理念和技术,实现项目的成功实施和交付。通过不断地探索和实践,将 Web 组件化的优势充分发挥出来,为前端开发领域的发展做出贡献。
46 8
|
2月前
|
JavaScript
在 Vue 3 中,如何使用 v-model 来处理自定义组件的双向数据绑定?
需要注意的是,在实际开发中,根据具体的业务需求和组件设计,可能需要对上述步骤进行适当的调整和优化,以确保双向数据绑定的正确性和稳定性。同时,深入理解 Vue 3 的响应式机制和组件通信原理,将有助于更好地运用 `v-model` 实现自定义组件的双向数据绑定。
|
2月前
|
存储 JavaScript 前端开发
vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
【10月更文挑战第21天】 vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
|
2月前
|
JavaScript 索引
Vue 3.x 版本中双向数据绑定的底层实现有哪些变化
从Vue 2.x的`Object.defineProperty`到Vue 3.x的`Proxy`,实现了更高效的数据劫持与响应式处理。`Proxy`不仅能够代理整个对象,动态响应属性的增删,还优化了嵌套对象的处理和依赖追踪,减少了不必要的视图更新,提升了性能。同时,Vue 3.x对数组的响应式处理也更加灵活,简化了开发流程。
|
2月前
|
JavaScript
Vue 双向数据绑定原理
Vue的双向数据绑定通过其核心的响应式系统实现,主要由Observer、Compiler和Watcher三个部分组成。Observer负责观察数据对象的所有属性,将其转换为getter和setter;Compiler解析模板指令,初始化视图并订阅数据变化;Watcher作为连接Observer和Compiler的桥梁,当数据变化时触发相应的更新操作。这种机制确保了数据模型与视图之间的自动同步。
|
3月前
|
设计模式 JavaScript 前端开发
vue的MVVM模型
MVVM(Model-View-ViewModel)是Vue框架的核心设计模式,将应用分为模型(数据和业务逻辑)、视图(用户界面)和视图模型(数据转换与用户交互)。其特点包括数据驱动、组件化、双向数据绑定及响应式,提高了开发效率和应用质量。【10月更文挑战第2天】
|
3月前
|
JavaScript UED
Vue双向数据绑定的原理
【10月更文挑战第7天】
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
1067 0