美文网首页初学前端
初学vue及九大指令

初学vue及九大指令

作者: 焚心123 | 来源:发表于2019-11-30 20:57 被阅读0次

    1.Vue和其他两大框架的区别:

    2.Vue是什么?

    • Vue是一套用于构建用户界面的渐进式框架
      "前端框架"
    • 让程序员脱离自己操作DOM 专注于写逻辑
      和操作数据
    • Vue的核心库只关注视图层 易上手 便于与第三方库或既有的项目整合
    • 当与现代化的工具链以及各种支持的库结合使用时 Vue也完全能够为复杂的单页应用提供驱动

    3.什么是MVC?

    • 是后台的一种软件开发模式,将程序分为三步分:
    • M
      model 数据
    • V
      view 视图
    • C
      controller 控制器
    • 我们前端只关心的是视图view

    4.MVVM

    • mvvm又将MVC中V细分为了三部分:
      • M
        model 数据
      • V
        view HTML页面
      • VM
        view-model 数据与视图之间的逻辑

    5.什么是渐进式框架

    就是参与的少,在实现功能的时候,允许多个框架或库参与

    6.Vue的特点

    • 数组驱动
    • 指令系统
    • 组件化开发
    • 路由系统
    • Vuex

    7. 创建一个Vue对象

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>初学vue</title>
    </head>
    <body>
           <div id="app">{{str}}</div><!--欢迎学习vue-->
    </body>
    </html>
    <!--引入vue的js文件-->
    <script src="../vue九大指令/js/vue.js"></script>
    <script>
    
        var Vm=new Vue({
            el:'#app',
            data:{//--->data中可写入数据
                str:"欢迎学习vue"
            }
        })
    
    
    </script>
    

    7.Vue的指令

    • v-text
      说明: 文本数据渲染
      用法: v-text = "Vue实例中的数据" => 简写 {{Vue实例中的数据}}

                 相当于JavaScript中的innerText
      
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>初学vue</title>
    </head>
    <body>
         <div id="app">
             <p v-text="str"> </p><!--欢迎学习vue-->
            <!--<b>hello world</b>  -->
             <p v-text="str1"> </p>
         </div>
    </body>
    </html>
    <script src="../vue九大指令/js/vue.js"></script>
    <script>
    
      var Vm=new Vue({
          el:'#app',
          data:{
              str:"欢迎学习vue",
              str1:`<b>hello world</b>`
          }
      })
    
    
    </script>
    
    • v-html
      说明: HTML渲染数据
      用法:v-html = "Vue实例中的数据"
      会解析html结构 渲染至页面
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>初学vue</title>
    </head>
    <body>
           <div id="app">
               <p v-text="str"> </p><!--欢迎学习vue-->
              <!--<b>hello world</b>  -->
               <p v-text="str1"> </p>
                <!--解析HTML标签  hello world-->
                <p v-html="str1"> </p>
           </div>
    </body>
    </html>
    <script src="../vue九大指令/js/vue.js"></script>
    <script>
    
        var Vm=new Vue({
            el:'#app',
            data:{
                str:"欢迎学习vue",
                str1:`<b>hello world</b>`
            }
        })
    
    
    </script>
    
    • v-html 指令和 v-text 指令的区别
      • v-html 会将数据解析成html 渲染至页面,通俗说:就是有标签的会解析,只输出内容;

      • v-text 只会输出成文本(字符串形式),有标签的不会解析,全部输出;

        注意: 在网站上动态渲染任意的 HTML 是非常危险的!!! 因为容易导致 XSS 攻击 只在可信内容上使用 v-html 绝对不要用在用户通过(提交)的内容上使用
        
    • v-on
      说明: 事件绑定(绑定事件监听器)
      用法: v-on:事件名 = "方法名" => 简写 @事件名 = "方法名"
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>初学vue</title>
    </head>
    <body>
           <div id="app">
               <!--欢迎学习vue-->
               <p v-text="str"> </p>
               <!--<b>hello world</b>-->
               <p v-text="str1"> </p>
               <!--解析HTML标签 hello world-->
               <p v-html="str1"> </p>
               <!--v-on 事件绑定-->
               <button v-on:click="add"> 点击 </button>
               <!--v-on 事件绑定可简写 @事件名=‘方法名’-->
               <button @click="add"> 点击 </button>
           </div>
    </body>
    </html>
    <script src="../vue九大指令/js/vue.js"></script>
    <script>
    
        var Vm=new Vue({
            el:'#app',
            data:{//写入数据
                str:"欢迎学习vue",
                str1:`<b>hello world</b>`
            },
            methods:{//方法属性
                add(){
                    alert('我是事件绑定v-on')
                }
            }
        })
    
    
    </script>
    
    • v-bind
      说明: 属性绑定(行内属性)
      用法: v-bind:属性名="Vue实例中的数据" => 简写 :属性名="Vue实例中的数据"
      当Vue实例中的数据改变之后 页面会同步更新
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>初学vue</title>
    </head>
    <body>
           <div id="app">
               <!--正常图片引入路径-->
               <img src="./img/aa.png" alt="">
               <!--v-bind:src=" '绑定图片路径'+变量" -->
               <img v-bind:src="'./img/' +picture" alt="">
               <!--简写  :src=" '绑定图片路径'+变量"-->
               <img :src="'./img/' +picture" alt="">
           </div>
    </body>
    </html>
    <script src="../vue九大指令/js/vue.js"></script>
    <script>
    
        var Vm=new Vue({
            el:'#app',
            data:{//写入数据
                picture:"aa.png"
            },
    
        })
    
    
    </script>
    
    • v-model
      说明: 双向数据绑定
      用法: v-model = "Vue实例中的数据"

         注:只能运用在表单中
      
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>初学vue</title>
    </head>
    <body>
           <div id="app">
              <!--在表单中写入数据,会在str数据中也显示,str中的数据,在表单中也会显示-->
               <input type="text" v-model="str">
               {{str}}
           </div>
    </body>
    </html>
    <script src="../vue九大指令/js/vue.js"></script>
    <script>
    
        var Vm=new Vue({
            el:'#app',
            data:{//写入数据
              str:"hello world"
            },
    
        })
    
    
    </script>
    
    • v-for
      说明: 循环渲染
      用法: v-for = "(item,index) in items" :key = "index"

      注:item 是每一项元素 
          index 是当前每一项元素的索引值(下标) 
      
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>初学vue</title>
    </head>
    <body>
           <div id="app">
    
               <ul>
                   <li v-for="(item,index) in str">
                      <p> 每一项元素:{{item}}</p>
                       <p>每一项的索引值:{{index}}</p>
                   </li>
               </ul>
    
           </div>
    </body>
    </html>
    <script src="../vue九大指令/js/vue.js"></script>
    <script>
    
        var Vm=new Vue({
            el:'#app',
            data:{//写入数据
              str:['hello','world','用心去看待世界','心中充满希望']
            },
    
        })
    
    
    </script>
    
    • v-if
      说明: 条件(表达式或布尔值)判断渲染
      用法:
      v-if = "表达式或布尔值"
      v-else-if = "表达式或布尔值"
      v-else
    • v-show
      说明: 条件渲染
      用法: v-show = "表达式或布尔值"
      根据表达式或布尔值的真假切换元素的display属性
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>初学vue</title>
    </head>
    <body>
           <div id="app">
               <!--num小于num条件成立,显示,如不成立,不渲染数据,不显示数据-->
              <p v-if="num<num1">我是v-if条件判断</p>
               <!--num小于num条件成立,显示,如不成立,隐藏数据-->
               <p v-show="num<num1">我是v-show条件判断</p>
    
           </div>
    </body>
    </html>
    <script src="../vue九大指令/js/vue.js"></script>
    <script>
    
        var Vm=new Vue({
            el:'#app',
            data:{//写入数据
             num:2,
                num1:5
            },
    
        })
    
    
    </script>
    
    • v-if 和 v-show 的区别:

      v-if :
       1.有较高的切换性能消耗
       2.惰性渲染 第一次如果条件为false 则不 
        会渲染到页面 需要等后面条件切换后才会 
        进行第一次渲染
       3.条件切换是切换DOM数中这个元素的移 
        除或添加
       4.如果运行时条件很少改变则使用v-if
      
      v-show: 
       1.有较高的初始渲染消耗
       2.初始渲染 不管条件 第一次加载页面的时          
        候都会渲染到页面
       3.条件切换只是切换元素的display属性
       4.如果运行时条件会非常频繁的切换则使 
        用v-show
      
    • v-cloak
      说明:这个指令是解决插值表达式的闪烁问题
      用法:在当前的标签上加入v-cloak ,在样式中 [v-cloak]{display:none;}

    这是初学vue的九大指令,如果有什么不对的地方,欢迎指正!一起学习交流,进步!!

    相关文章

      网友评论

        本文标题:初学vue及九大指令

        本文链接:https://www.haomeiwen.com/subject/hnxawctx.html