zoukankan      html  css  js  c++  java
  • VUE篇 1、前端回顾、es6新特性、v指令

    es6的语法

    let 

    特点: 1.局部作用域 2.不会存在变量提升 3.变量不能重复声明 ``` #####

    const 

    特点: 1.局部作用域 2.不会存在变量提升 3.不能重复声明,只声明常量 不可变的量 

    模板字符串 

    tab键上面的反引号 ${变量名}来插值

    let name = '未来';

    let str = `我是${name}`

    箭头函数

    function(){}       ===        ()=>{} this的指向发生了改变

    es6的类

    原型 prototype 当前类的父类(继承性)

    class Person{ constructor(name){ this.name = name; } fav(){ } }

    Vue的基本用法

    vue的介绍 前端有三大框架: 可以去github查看三个框架的 star星

    | 框架 | 介绍 | |

    | | vue | 尤雨溪,渐进式的JavaScript框架

    | |react | Facebook公司,里面的高阶函数非常多,对初学者不友好

    | | angular | 谷歌公司,目前更新到10.0,学习angular得需要玩一下typescript

    Vue angular2.0 3.0~10.0 React(高阶函数 es6)初学者不友好 |

    vue的基本引入和创建
    - 1.下载

    cdn方式下载 

    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>

    ``` - 2.引包

      <script src='./vue.js'></script>

    ``` - 3.实例化

    new Vue({
        el:'#app', //绑定那块地
        data:{
            //数据属性  种子
            msg:'黄瓜',
            person:{
                name:'wusir'
            },
            msg2:'hello Vue'
        }
    });

    ``` Vue的模板语法

    可以插入任何你想插入的内容,除了if-else if-else用三元运算符代替

    <!--模板语法-->
    <h2>{{ msg }}</h2>         插入声明过的字符
    <h3>{{ 'hhahda' }}</h3>      插入字符串 
    <h3>{{ 1+1 }}</h3>           可以作简单的运算
    <h4>{{ {'name':'alex'} }}</h4>   插入对像  只是显示==》{'name':'alex'}
     <h5>{{ person.name }}</h5>     调用对象中的具体字段的值  

    <h2>{{ 1>2? '真的': '假的' }}</h2>   三元运算

    <p>{{ msg2.split('').reverse().join('') }}</p>   js的函数方法也可以用!!

    ``` Vue的指令系统之v-text和v-html**

    v-text相当于innerText         ” vue对象中的data()方法return一个字段msg,然后标签中添加v-text='msg' “     ” 不能渲染标签“

    v-html相当于innerHTML     ”可以渲染标签“

    Vue的指令系统之v-if和v-show 

      v-show 相当于 style.display 

    v-if和v-show的区别

    记住:

    v-if vs v-show
    
    v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。
    
    v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。
    
    相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。
    
    一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。 

    v-bind 和v-on

    v-bind可以绑定标签中任何属性    v-bind:class = '{active:isActive}'   v-bind:src = "imgSrc"
    v-on 可以监听 js中所有事件 v-on:click = 'handlerChane' ==>在对象中的methods:{
    handlerChane(){this.isActive=!this.isActive},...}
    简写: v-bind:src 等价于 :src       相当于angular的[src]
        v-on:click 等价于 @click    相当于angular的(click)
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <style>
            .box {
                width: 200px;
                height: 200px;
                background-color: red;
            }
            .active{
                background-color: green;
            }
    
        </style>
    </head>
    <body>
    
    <div id="app">
        <!--<button v-on:click = 'handlerChange'>切换颜色</button>-->
       <!--v-bind 标签中所有的属性 img标签src alt,a标签的href title id class-->
        <!--<img v-bind:src="imgSrc" v-bind:alt="msg">-->
        <!--<div class="box" v-bind:class = '{active:isActive}'></div>-->
    
         <button @mouseenter = 'handlerChange' @mouseleave = 'handlerLeave'>切换颜色</button>
       <!--v-bind 标签中所有的属性 img标签src alt,a标签的href title id class-->
        <img :src="imgSrc" :alt="msg">
        <div class="box" :class = '{active:isActive}'></div>
    </div>
    <!--1.引包-->
    <script src='./vue.js'></script>
    <script>
        //数据驱动视图  设计模式 MVVM  Model  View  ViewModel
    
        //声明式的JavaScript框架
    
    //    v-bind和v-on的简便写法 :  @
        new Vue({
            el: '#app',
            data() {
                //data中是一个函数 函数中return一个对象,可以是空对象 但不能不return
                return {
                    imgSrc:'./1.jpg',
                    msg:'美女',
                    isActive:true
                }
            },
            methods:{
                handlerChange(){
    //                this.isActive = !this.isActive;
                    this.isActive = false;
                },
                handlerLeave(){
                    this.isActive = true;
                }
            }
           
        })
    </script>
    
    </body>
    </html>
    上诉的实例代码

    v-for 遍历列表

    v-for可以遍历列表,也可以遍历对象                                  
          *ngfor呗 <li v-for = "(item,index) in data.user" :key='item.id'或者'index'>..<>
                  
      遍历对象   <div v-for = "(value,index) in person" >..</div> 
    在使用vue的v-for指令的时候,一定要绑定key,避免vue帮咱们计算DOM
  • 相关阅读:
    poj 2109Power of Cryptography
    poj 2632Crashing Robots
    poj 2586Y2K Accounting Bug
    linux0.12中文件系统的一些理解
    latex初学者的经验
    关于linux0.12中的add_entry中bread中的些猜测
    uid gid euid egid详解
    关于linux0.12文件系统目录大小的一个发现
    我的初级muttrc配置
    使用STM32的USB模块中后对USB缓冲区的认识
  • 原文地址:https://www.cnblogs.com/zhuangdd/p/13690061.html
Copyright © 2011-2022 走看看