Skip to content

Vue基础

Vue是一个渐进式前端框架,可以帮我们快速完成前端项目的开发

vue2 CDN

html
<script src="http://unpkg.zhimg.com/vue@2"></script>
或者
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

浏览器环境vue2骨架

html
<!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>Document</title>
</head>
<body>
    <div id="app">

    </div>
    <script src="http://unpkg.zhimg.com/vue@2.6.14"></script>
    <script>
        const vm=new Vue({
            //声明监控范围
            el:'#app', 
            //创建m模型数据
            data:{
                
            }
        })
    </script>
</body>
</html>

1.MVVM

MVVMModel–view–viewmodel)是一种软件架构模式,有助于将图形用户界面的开发与业务逻辑后端逻辑数据模型)的开发分离开来

  • M:Model,即模型,其中包含模型数据,方法函数等
  • V:View,即视图,就是我们的html结构
  • VMViewModel,作为M和V的桥梁,用来同步数据更新

MVVM最大的特点就是数据同步更新,当我们在js中修改一个数据时,html中使用的数据会同步更新,而不是像原生js一样使用innerHTML类似的语法修改数据

2.Vue实例

每个 Vue.js 应用的起步都是通过构造函数 Vue 创建一个 Vue 的根实例

Vue构造函数接收一个对象作为实参,其中包含Vue的各种配置项,如el、data、methods等

js
var vm = new Vue({
  // 选项
})

一个 Vue 实例其实正是一个MVVM模式中所描述的 ViewModel - 因此在文档中经常会使用 vm 这个变量名。

2.1 el

Vue实例中有个重要的配置项,就是el(element),这代表的是被Vue管理的根元素,在这个元素内的所有元素都可以使用Vue相关的语法

el的值是一个字符串,格式和document.querySelector()的参数一样

html
<div id="app"></div>

<script>
    //第一种
    const vm = new Vue({
        el: '#app'
    })
</script>

根元素的挂载还有另一种语法

js
var vm = new Vue({
    // ...
})
vm.$mount('#app'),

2.2 data

data同样也是Vue中一个重要的配置项,所有的数据都在data中定义

js
const vm = new Vue({
    data: {
        key:'value',
        name:'蔡徐坤'
    },
})

data可以是一个对象,对象中定义各种数据

也可以是一个函数,通过return一个对象,在return的对象中定义各种数据

js
const vm = new Vue({
    data(){
        return{
            key:'value',
            name:'蔡徐坤'
        }
    }
})

在现实开发中,data一定要写成函数的形式,并且不能写箭头函数,否则会影响this的指向

3.模版语法

在Vue的html中,我们可以使用两个个大括号{{}},来使用data中定义的数据

html
<div id="app">{{name}}</div>

<script>
    //第一种
    const vm = new Vue({
        el: '#app',
        data(){
            return{
                name:'蔡徐坤'
            }
        }
    })
</script>

此时{{}}中的变量会被解析成相应的值

{{}}相当于一个js环境,也可以写表达式

html
<div id="app">{{ age>18 ? "成年了" : "未成年" }}</div>

<script>
    //第一种
    const vm = new Vue({
        el: '#app',
        data(){
            return{
                age:18
            }
        }
    })
</script>

MIT Licensed