zoukankan      html  css  js  c++  java
  • 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操作的性能问题。

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    【原】webpack--loaders,主要解释为什么需要loaders和注意事项
    【原】通过npm script运行webpack的原理
    原生js深拷贝函数
    git add 添加错文件的撤销方法
    item2 快捷键
    sudo su 和sudo -s的区别
    nvm常用命令
    【雅思】【口语】Describe a product you bought and felt happy
    【雅思】【口语】Help others
    【雅思】【口语】
  • 原文地址:https://www.cnblogs.com/vivin-echo/p/13755788.html
Copyright © 2011-2022 走看看