4-01Vue基础

Vue

1.翻墙在Google浏览器安装Vue Devtools【该插件需在服务器环境下运行】【通过go live】
2.引入Vue.js文件

当我们第一次通过script标签对引入vue.js时,我们就会有一个全局变量 Vue

var vm = new Vue( options )      // 实例化Vue的到vm实例

options / el 
    数据类型:string|Element
    称之为自动挂载:将页面一个已经存在dom作为整个实例的作用范围,出了这范围那么vm实例就没有作用了;
    注*body不能作为el的挂载目标;

options / data 数据
    new类型中 data选项是一个对象;
    使用形式: 在实例范围内,它相当于全局变量;
    我们要将这个变量放在一个模板语法{{}}中才能解析,这个语法叫做mustache语法,也叫 ‘双大括号语法’;
    使用范围: el确定的范围;

参数: options 我们称之为‘ 选项 ’ 类型: Object

<script src="../vue.js"> <script>        //引入vue文件

<div id="app">      
    {{ msg }}       //el定义了data对象的作用范围 ,只有在大括号内的msg才被解析
    msg
</div>

var vm = new Vue         // 实例化Vue的到vm实例
    el: '#app',          // document.querySelector('#app')   可以是id选择符,也可以是元素
    data: {
      msg: 'hello Vue.js'   //在实例范围内,它相当于全局变量;放入模板语法{{}}中才能解析;
    };
  })        
3. Vue是一个MVVM框架
  M:  data   选项
  V: el     挂载的东西  
 VM: vm     实例
4.使用Devtools
切换到要打开的文件,点击右下角的go live,自动开启;待图标变绿说明开启成功,打开控制台,找到vue模块.
5.双向绑定
 <div id="app">                         //Root组件/根组件/根实例
    <h3> VM改变 ——>  V也跟着改变 </h3>
    {{ msg }}
    <h3> V改变 -> VM也跟着改变 </h3>
    <input type="text" v-model = "msg">  //Vue中双向数据绑定式通过 v-model 这个指令来实现的
 </div>
 
 </script>
    var vm = new Vue({
    el: '#app',
    data: {
      msg: 'hello Vue.js'
    }
  }) 
  </script>

//当我们将vm中的data改变时,会发现视图也跟着改变了,这个模式我们称之为: 数据驱动 
//数据驱动: 数据驱动视图改变
//Vue官方将这种模式称之为:深入响应式原理
6.底层原理【使用原生js来实现Vue深入响应式
<body>
  <button> 点击 </button>
  <div class="box"></div>
</body>

<script>
  var box = document.querySelector('.box')
  var button = document.querySelector('button')

  var data = {
    name: 'Jick'
  }
  var observer = {...data}  // 观察者对象,存储data的值

  // Object.defineProperty(对象,对象的属性,对象属性的修饰符 )
  Object.defineProperty(  data,'name',{
    // get/set  统称为: '存储器'
    get () {
      return  observer.name // 初始化赋值一个值给name属性
    },
    set ( val ) {
      console.log( val )
      box.innerHTML = val
    }
  })

  button.onclick = function () {
    data.name = "Rose"
  }

  box.innerHTML = data.name 
</script>

猜你喜欢

转载自www.cnblogs.com/douyacai7822/p/11388477.html