Vue01

Vue入门

突然转前端了,有点开心,最近捋了捋都要学什么,先写我的入门笔记吧,Java后面再慢慢更新.......

在HTML文件中使用vue

<body>
   <div id="app"></div>
   <!--引入vue.js库文件-->
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   <script>
       var vm = new Vue({
               template: '<p>{{message}}</p>',
               data: {
                   message: 'Hello Vue!'
              }
          })
           // vm.$mount(document.getElementById('app'))
       vm.$mount('#app') //与上面的作用一致
   </script>
</body>

定义一个id位app的div,div为容器,vue实例对象中的内容会被挂载到这个容器上。

引入vue.js库文件

new实例化Vue对象,通常一个vue对象为一个应用,这个应用包含了视图界面,数据和执行逻辑。实例化时可有很多选项,template选项表示视图模板,改模板使用({...})表达式将数据填充到模板,模板被解析后就是视图(HTML片段)。data选项中存储数据,这里存放了message数据,引用执行后这个message被填充到模板中。vm变量指向Vue对象,Vue对象有一个$mount方法,作用是将实力挂载到HTML的DOM节点上。原来的div会被template替换,这是挂载的结果。vue对象的$mount方法参数可以是一个dom元素也可以是一个选择器。

使用el选项

上面的例子可以改为使用el选项直接指定要挂载的DOM元素,这样就无需调用$mount方法来挂载。

var vm = new Vue({
              el: '#app',
              template: '<p>{{message}}</p>',
              data: {
                  message: 'Hello Vue!'
              }
          });

省略template

在实例化vue对象的时候,如果存在template,那么template的内容会完全替换掉el指定的DOM元素,如果没有指定template,那么el指定的DOM元素会被提取出来作为模板(template会完全替换el指定元素,但如果没有template,el不会被替换,而会被当作模板来解析)

<div id="app">
       <p>Hello Vue!</p>
   </div>
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   <script>
       var vm = new Vue({
               el: '#app',
               data: {
                   message: 'Hello Vue!'
              }
          });

简单事件处理

 <body>
   <div id="app">
       <p>{{message}}</p>
       <button v-on:click="message='Hello World!!!'">click me</button>
   </div>
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   <script>
       var vm = new Vue({
           el: '#app',
           data: {
               message: 'Hello Vue!'
          },
           message: {
               hello: function() {
                   this.message = 'Hello World!'
              }
          }
      })
   </script>
</body>

代码中添加了methods选项,这个选项中定义的都是方法。当发生事件之后调用这个方法。<button>按钮上使用了 v-on:click ,这个属性HTML中是没有的,只有Vue框架才有。因为整个div已经被作为vue的模板了,vue在解析模板的时候,会按照 v-on:click 来为dom元素注册事件。 v-on 是前缀,click是事件名称(标准dom事件名称去掉on),中间用":"分割,后面双引号中的内容是事件处理函数的名称,它必须 methods中定义。

v-on:click= "" 等号后面的双引号中的内容其实也可以是JavaScript表达式,对于比较简单的事件处理可以不必调用事件处理函数来处理。

可以看到模板中访问 vue中的 data和methods中定义的变量和方法的时候,都是可以直接访问的。因为模板”看起来“像HTML代码,实际上它是JavaScript代码,因为它们执行的时候会被放入到vue实例对象内部来解析的,在vue对象内部,this其实就是vue实例对象

Vue与传统的编程

 

传统的DOM编程是要靠JavaScript代码来操作DOM对象的,实现对DOM节点(对象)的增,删,改,查。从上面的例子中可以看到,我们并没有直接操作DOM,而是通过JavaScript代码来操作数据,Vue框架发现数据发生变化之后,自动渲染DOM节点。它之所以能够做到这一点,是因为Vue引入了虚拟Dom的概念(Virtual Dom) 它主要解决了浏览器DOM操作的性能问题。

 

 

 

 

 

 

 

 

 

 

posted @ 2020-09-30 17:58  fiamme  阅读(115)  评论(0编辑  收藏  举报