zoukankan      html  css  js  c++  java
  • vue

    前端框架

    主流框架:angular(facebook家的),react(github家的),vue(尤雨溪的)

    vue:有前两大框架的有点,摒弃了缺点,但是没有前两大框架健全,

    vue有点:中文API,单页面应用,组件化开发,数据双向绑定,虚拟DOM,数据驱动

    VUE

    导入

    1. 下载:https://cn.vuejs.org/进入官网,起步,下载

    2. 导入,<script src="js/vue.js"></script>

    3. 之后可以创建vue实例并通过el方法挂载,进而控制.

    vue的操作

    插值表达式
    <body>
        <div id="test">
            <p>{{ msg }}</p>
            <p>{{ num + 1 }}</p>
            <p>{{ msg + num}}</p>
            <p>{{ msg[1] }}</p>
            <p>{{ msg.split('')}}</p>
    
        </div>
    
    
    </body>
        <script src="js/vue.js"></script>
        <script>
            new Vue({
                el:"#test",
                data:{
                    msg:"orange",
                    num:10
                }
            })
        </script>
    >>>
    orange
    
    11
    
    orange10
    
    r
    
    [ "o", "r", "a", "n", "g", "e" ]
    

    注意:当使用vue语法时,{{}}中如果什么都不放,语法解析不出来,会显示{{}}.

    文本指令

    {{ }}直接传值

    v-text:不能解析html语法,直接传值.

    v-html:可以解析html语法.

    <div id="text">
        <p v-text="info">123</p>
        <p v-html="info"></p>
    </div>
    </body>
    <script src="js/vue.js"></script>
    <script>
        new Vue ({
            el:"#text",
            data:{
                info:'<i>infor</i>',
            },
        })
    </script>
    >>>
    <i>infor</i>
    
    infor
    

    而且代码从上至下执行,如果原p标签中有值,会被后面执行的v-html或者v-text覆盖掉

    v-once

    无论多少操作,只渲染一次.

    <body>
    <div id="text">
        <p v-once v-on:click="pClick">{{ msg }}</p>
    </div>
    </body>
    <script src="js/vue.js"></script>
    <script>
        new Vue ({
            el:"#text",
            data:{
                info:'<i>infor</i>',
                msg:'1111'
            },
            methods:{
                pClick:function () {
                    this.msg = "222"
                }
            }
        })
    </script>
    >>>
    1111
    

    渲染一次1111,后面再也改变不了了

    事件指令

    事件指令 v-on:事件名="方法变量"

    简写: @事件名="方法变量"

    <body>
    <div id="event">
        <p v-on:click="f1">{{ msg }}</p>
        <p @click="f1">{{ msg }}</p>
        <hr>
        <p @click="f2($event,'第一个')">{{ info }}</p>
        <p @click="f2($event,'第二个')">{{ info }}</p>
    
    </div>
    </body>
    <script src="js/vue.js"></script>
    <script>
        new Vue ({
            el:"#event",
            data:{
                msg:"点击事件",
                info:"是我"
            },
            methods:{
                f1(){
                    this.msg ="点击了"
                },
                f2(ev,args){
                    this.info = args + "点击了"
                }
            }
        })
    </script>
    

    关于鼠标的操作:@后面的

    方法 操作
    mouseove 鼠标悬浮
    mouserout 鼠标移开
    mousedown 鼠标点下去
    mouseup 鼠标抬起来
    mousemove 鼠标在上面移动
    contextmenu 右键点击

    @事件="变量($event,...)"

    当事件变量不添加(),系统默认传入一个事件对象:$event

    当事件变量后手动添加了(),就告诉了系统不需要再传入事件对象,但是可以手动传入事件对象.

    属性指令

    v-bind:属性名="变量"

    简写 :属性名="变量"

    简单使用
    <body>
    <div id="property">
        <p v-bind:title="pTitle" :abc="def">简答使用</p>
    </div>
    </body>
        <script src="js/vue.js"></script>
    <script>
        new Vue({
            el:"#property",
            data:{
                pTitle:"简单使用"
            }
        })
    </script>
    
    class属性绑定
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .d1 {
                200px;
                height:200px;
                background-color: orange;
            }
            .d2 {
                border-radius: 50%;
            }
            .d3 {
                border-right: 20%;
            }
        </style>
    </head>
    
    <body>
    <div id="property">
        //可以通过传值的方式传多个
        <p :class="c0"></p>
        //多类名可以使用[]语法,采用多个变量来控制
        <p :class="[c1,c3]"></p>
        //[]中也可以使用常量
        <p :class="['d1',c3]"></p>
        //{类名:布尔值} 可以控制某类名是否起作用
        <p :class="['d1',{d2:is_true}]" @click="is_true=!is_true"></p>
        //点击事件改变src属性
        <p @click="changeImg">大长腿</p>
        <img :src="img_src" alt="">
        //style控制样式样式
        <p :style="myStyle">样式属性</p>
        <p :style="{w,height:h,backgroundColor:bgc}">样式属性</p>
    </div>
    </body>
        <script src="js/vue.js"></script>
    <script>
        new Vue({
            el:"#property",
            data:{
                c0:"d1 d2",
                c1:'d1',
                c2:"d2",
                c3:"d3",
                is_true:true,
                img_src:'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3819296004,574391848&fm=26&gp=0.jpg',
                myStyle: {
                     '100px',
                    height: '100px',
                    backgroundColor: 'red'
                },
                w: '200px',
                h: '100px',
                bgc: 'green'
            },
            methods:{
                changeImg(){
                    this.img_src='https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1371195756,4187769521&fm=26&gp=0.jpg'
                }
        })
    </script>
    

    注意:data的style中:左侧比如backgroundColor:属性名:驼峰体="减号连接体"

    is_true这种也可以不引号

  • 相关阅读:
    python 29day--异常处理及socket简介
    python 28day--类的总结
    python 27day--类的内置函数补充
    python 26day-- 面向对象的三大特性
    python 25day--面对对象进阶
    python 24day--python面向对象编程
    python 23day--python模块的应用
    python 22day--python的模块与包
    python 21day--文件的增删改查功能实现
    虚拟机的三种模式
  • 原文地址:https://www.cnblogs.com/agsol/p/12051777.html
Copyright © 2011-2022 走看看