VUE 的官网:https://cn.vuejs.org/
先到Vue官网把Vuejs的文件下载下来

1. 引入vue.js

官网:vuejs.org 开发版本:包含完整的警告和调试模式 生产版本:删除了警告,体积更小

  1. 引入vue.js后,给我们提供了一个构造函数 Vue
  2. 在js中,new Vue()
  3. new Vue() 后会返回一个vue实例对象,我们用变量接着它
  4. const vm = new Vue()
  5. 传递一个配置对象{} — > const vm = new Vue({})

el

类型: 字符串 全称:element(元素)

作用:配置控制的元素,表示Vue要控制的区域,值为css选择器

  1. <!-- 被Vue控制的区域,我们称之为模板 -->
  2. <div id="app"></div>
  1. const vm = new Vue({
  2. el: '#app' // 控制id为app的元素
  3. })

$mount

  • 作用和el一致,都是配置控制的元素,使用哪个都可以,二选一

    1. <div id="app"></div>
    1. const vm = new Vue({})
    2. vm.$mount('#app');
  • 问:和el有什么不同?

    答:本质上没什么不同,$mount为手动挂载,在项目中有时要进行延迟挂载,比如有时要在挂载之前进行一些其他的操作,比如判断等等(但是,这样做的时候很少,比邓哥回家的次数还少,emmmmm)

data

  • 类型:对象
  • 作用:存放要用到的数据,数据为响应式的
    1. const vm = new Vue({
    2. el: '#app',
    3. data: {
    4. 'mrDeng': '风姿绰约、花枝招展'
    5. }
    6. })

插值表达式

  • 使用方法: {{ }}
  • 可以将vue中的数据填在插值表达式中,如:

    1. <div id="app">{{ mrDeng }}</div>
    1. const vm = new Vue({
    2. el: '#app',
    3. data: {
    4. mrDeng: '邓哥:风姿绰约、花枝招展'
    5. }
    6. })
  • 除了填写data之外,还可以直接填写数据值(数字、字符串、布尔值、undefined、null、NaN、数组、对象)undefined、null 不会显示,如:

    1. <div id="app">
    2. {{ 5201314 }}
    3. {{ '婀娜多姿、亭亭玉立' }}
    4. {{ true }}
    5. {{ ['邓旭明', '小刘', '王小宝'] }}
    6. {{ {name: '邓旭明', age: 80, height: '140cm', weight: '100kg'} }}
    7. </div>
  • 注意:在插值表达式中直接书写对象类型值时,不要将三个{}连在一起,这样会报错,如:

    1. <div id="app">
    2. <!-- 这样可是不行滴 -->
    3. {{{name: '邓旭明', age: 80, height: '140cm', weight: '100kg'}}}
    4. </div>
  • 还可在插值表达式中写表达式,函数表达式可以 如:

    1. <div id="app">
    2. <!-- 运算表达式 -->
    3. {{ 'you' + 'me' }}
    4. {{ 10 - 5 }}
    5. {{ 100 * 7 }}
    6. {{ 1000 / 12 }}
    7. <!-- 逻辑表达式 -->
    8. {{ liu || li }}
    9. {{ deng && liu }}
    10. {{ !wang }}
    11. <!-- 三元表达式 -->
    12. {{ 1 + 1 === 3 ? '邓旭明' : '正常人' }}
    13. <!-- 函数调用也是表达式,也可以使用,这个以后再学哈... -->
    14. </div>
  • 还可以填写其他的吗?不可以,No,以下这些都是不行滴:

    1. <div id="app">
    2. <!-- 这是语句,不可以写在插值表达式中 -->
    3. {{ var Deng = 'shuaige'; console.log(deng) }}
    4. <!-- 流程控制也不可以 -->
    5. {{ if(Deng.looks === 'shuai'){ console.log('不可能')} }}
    6. </div>
  • 记住:插值表达式中,可以写:data、js数据、表达式,其他的想都不要想。

  • 注意,只要插值表达式中使用了数据,必须在data中声明过,否则会报错

    1. <!-- 此时就报错啦,因为mrCheng,未在data中声明过 -->
    2. <div id="app">
    3. {{ mrCheng }}
    4. </div>
    1. const vm = new Vue({
    2. el: '#app',
    3. data: {
    4. mrDeng: '邓哥:风姿绰约、花枝招展'
    5. }
    6. })
  • 还有另外一种可能,使用了未被声明过的数据,不报错:

  • 未被声明的值会是unfinished unfinished是不会显示的 ,对象中输出为被声明的属性,该属性的值就是unfinished;
    1. <!-- 此时不报错啦,why? -->
    2. <!-- 在作用域上找不到,报错 -->
    3. <!-- 在原型链上找不到,值为undefined -->
    4. <!-- undefined为js基本类型值,所以就不报错啦 -->
    5. <div id="app">
    6. {{ mrDeng.wife }}
    7. </div>
    1. const vm = new Vue({
    2. el: '#app',
    3. data: {
    4. mrDeng: {
    5. name: '邓旭明',
    6. age: 80,
    7. height: '140cm',
    8. weight: '100kg'
    9. }
    10. }
    11. })