Vue---01

Vue
  • 什么是vue
    vue是一种规范,是mvvm模型,基于双向绑定的前端框架;数据改变,页面就变;页面改变,数据就变。
  • ECMAScript6
    ES6声明变量的方式:
    1.var 声明全局变量;
    2.let 声明的变量只在该代码块中有效;
    3.const 声明常量 一旦赋值不能更改。
  • 解构表达式
 var arr=[1,5,4];
        //解构数组
        var [a,b,c] =arr;
        console.log(a,b,c)
        //解构对象
        var stu={
            name:"洪七公",
            age:42
        }
        var{name,age}=stu;
        console.debug(name,age)
  • 箭头函数
    箭头函数this是和当前创建环境的this是一致的
    如果箭头函数外面还有函数,那么箭头函数中的this是和外层函数的this是一致的;如果没有,this就指向window。
 var stu={
           name:"周董鱼",
           age:25,
           //方式一
           skill:function () {
               console.debug(this.name+this.age)
           },
           //方式二 箭头函数
           skill2:()=> {//箭头函数this是和当前创建环境的this是一致的;
                        // 如果箭头函数外面还有函数this就和外层函数的this一致,如果没有就指向window
               console.debug("指向window")
           },
           //方式三
           skill3(){
               console.debug("简写方式")
           }
       }
       //调用方法
        stu.skill();
        stu.skill2();
        stu.skill3();
hello_vue

使用vue需要引入vue核心库,引入之后会有一个内置对象vue;
{{}} :胡须表达式用来取值;
el:主要用来挂载指定的dom,
可以挂载的选择器:
id选择器 “#id名”
类型选择器 “.class名”
标签选择器 “标签名”
一般使用id选择器,因为id是唯一的
data:里面准备数据
methods:里面写vue实例的所有方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--引入vue核心库之后 默认有一个Vue内置对象-->
<script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
<body>
    <div id="god">
        {{msg}}
        <span>{{msg}}</span>
        --{{person}}--{{person.name}}--{{hello()}}
    </div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el 表示配置挂载的 一般都挂载id选择器 */
        el:"#god",//挂载类型选择器(.god),挂载标签(div)
        /*data准备的数据*/
        data:{
            msg:"洪七公",
            person:{
                name:"王天霸",
                age:22,
                sex:"男"
            },
        },
        methods:{//vue实例中的方法都放在methods中
            hello(){
                return "王老五"
            }
        }
    });
</script>
</html>
  • 算术表达式
    可以 +、-、*、/、%
    在vue中三目运算表示false的有6个:false、NaN、null、""、0、undefined
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--引入vue核心库之后 默认有一个Vue内置对象-->
<script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
<body>
    <div id="god">
        {{num}}+{{num1}}={{num+num1}}<!-- + - * / % -->
        num+num1={{num+num1}}

        <!--三目运算 默认为false的有 false,NaN,null,undefined,"",0-->
        {{sex?"男":"女"}}
    </div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el 表示配置挂载的标签 一般都挂载id选择器 */
        el:"#god",//挂载类型选择器(.god),挂载标签(div)
        /*data准备的数据*/
        data:{
           num:5,
           num1:4,
           sex:""
        }
    });

</script>
</html>
  • 操作字符串
    胡须表达式可以调用对应类型的方法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--引入vue核心库之后 默认有一个Vue内置对象-->
<script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
<body>
    <div id="god">
        <!--胡须表达式可以调用对等类型的方法-->
        {{str}}<br/>{{str.length}}<br/>{{str.substring(0,2)}}<br/>{{str.substr(0,4)}}
    </div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el 表示配置挂载的标签 一般都挂载id选择器 */
        el:"#god",//挂载类型选择器(.god),挂载标签(div)
        /*data准备的数据*/
        data:{
           str:"雷公电母,听我号令"
        }
    });
</script>
</html>
Vue指令
  • v-text&v-html
    v-text:在指定的标签进行设置值,如果你设置的代码有html代码,它只会当成一个纯文本进行展示;类似于js中的innerText;
    v-html:在指定的标签进行设置值,如果你设置的代码有html代码,它是能被浏览器所解析的 类似于js中的innerHTML;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--引入vue核心库之后 默认有一个Vue内置对象-->
<script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
<body>
    <div id="god">
        <span v-text="text">text</span><!--里面的内容都会被覆盖-->
        <span v-html="html">html</span>
    </div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el 表示配置挂载的标签 一般都挂载id选择器 */
        el:"#god",//挂载类型选择器(.god),挂载标签(div)
        /*data准备的数据*/
        data:{
           text:"<h1>内容全部以纯文本的方式展示</h1>",
           html:"<h1 style='color: red'>内容会渲染之后进行展示</h1>"
        }
    });
</script>
</html>
  • v-if—判断
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--引入vue核心库之后 默认有一个Vue内置对象-->
<script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
<body>
    <!--
        v-if 判断
    -->
    <div id="god">
        <span style="color: red" v-if="age>30&&age<60">中年</span>
        <span style="color: deepskyblue" v-else-if="age<30&&age>18">青年</span>
        <span style="color: deeppink" v-else-if="age<18">未成年</span>
    </div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el 表示配置挂载的标签 一般都挂载id选择器 */
        el:"#god",//挂载类型选择器(.god),挂载标签(div)
        /*data准备的数据*/
        data:{
            age:1,
        }
    });
</script>
</html>
  • v-for–循环迭代
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--引入vue核心库之后 默认有一个Vue内置对象-->
<script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
<body>
    <div id="god">
        <span v-for="v in num">{{v}}</span>
        <ul>
            <li v-for="v in msg">{{v}}</li>
            <li v-for="(v,i) in arr">{{v}}---索引{{i}}</li>
        </ul>
        <select>
            <!--v是取里面的值  k是取对应的key i是取对应的索引-->
            <option v-for="(v,k,i) in person">值:{{v}}--key:{{k}}---索引:{{i}}</option>
        </select>
    </div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el 表示配置挂载的标签*/
        el:"#god",
        /*data准备的数据*/
        data:{
            num:10,
            msg:"洪七公",
            arr:["a","b","c"],
            person:{
                name:"王天霸",
                age:22,
                sex:"男"
            },
        }
    });
</script>
</html
  • v-bind—绑定属性
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--引入vue核心库之后 默认有一个Vue内置对象-->
<script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
<body>
    <div id="god">
        <!--原生方式获取图片-->
        <img src="img/1.jpg" width="100%" height="100%" alt="图片不存在"/>
        <!--①使用v-bind 来绑定属性加载图片-->
        <img v-bind:src="src" v-bind:width="width" v-bind:height="height" v-bind:alt="alt">
        <!--②简写方式-->
        <img :src="src" :width="width" :height="height" :alt="alt">
        <!--③直接绑定对象-->
        <img v-bind="option">
    </div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el 表示配置挂载的标签 一般都挂载id选择器 */
        el:"#god",//挂载类型选择器(.god),挂载标签(div)
        /*data准备的数据*/
        data:{
            src:"img/1.jpg",
            width:"100%",
            height:"100%",
            alt:"图片不存在",
            option:{
                src:"img/1.jpg",
                width:"100%",
                height:"100%",
                alt:"图片不存在"
            }
        }
    });
</script>
</html>
  • v-model—双向绑定
    当data中的数据被修改时,基于数据绑定机制, 自动会把新的内容自动更新到value属性上. 页面视图也发生了改变.
    支持的标签有:
    input、select、textarea
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--引入vue核心库之后 默认有一个Vue内置对象-->
<script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
<body>
    <!--
        v-model 是双向绑定
        支持的标签有 input select textarea
    -->
    <div id="god">
        <!--在文本框中输入内容,绑定的值也会发生变化-->
        <input type="text" value="text" v-model="text">{{text}}<br/>

        <!--选择框-->
        <input type="checkbox" v-model="hobbys" value="lq">篮球<br/>
        <input type="checkbox" v-model="hobbys" value="ymq">羽毛球<br/>
        <input type="checkbox" v-model="hobbys" value="pq">排球<br/>
        {{hobbys}}<br/>

        <!--单选框-->
        <input type="radio"v-model="sex" value="1"><input type="radio"v-model="sex" value="0">{{sex}}<br>

        <!--下拉框select-->
        <select v-model="food">
            <option value="hsr">红烧肉</option>
            <option value="yjr">盐煎肉</option>
            <option value="xsr">小酥肉</option>
        </select>
        {{food}}<br/>

        <!--文本域textarea-->
        <textarea rows="20" cols="20" v-model="textarea"></textarea>
        {{textarea}}
    </div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el 表示配置挂载的标签 一般都挂载id选择器 */
        el:"#god",//挂载类型选择器(.god),挂载标签(div)
        /*data准备的数据*/
        data:{
            text:"文本",
            food:"yjr",
            hobbys:["pq"],//可以设置默认选中的值
            sex:0,//默认选中女
            textarea:"文本域"
        }
    });
</script>
</html>
  • v-on—绑定事件
    调用方法传参时需要加括号,无参可以不加
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--引入vue核心库之后 默认有一个Vue内置对象-->
<script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
<body>
    <!--
        v-on 绑定事件 绑定表达式或者事件
    -->
    <div id="god">
        <!--完整写法-->
        <input type="button" v-on:click="num++" value="按下加一">{{num}}
        <!--简写 调用方法时 传递参数需要加括号 -->
        <input type="button" @click="show('传参加括号')" @mouseout="show" value="弹弹弹">
    </div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el 表示配置挂载的标签 一般都挂载id选择器 */
        el:"#god",//挂载类型选择器(.god),挂载标签(div)
        /*data准备的数据*/
        data:{
            num:0,
        },
        methods:{
            show(msg){
                alert("突然出现。。。。"+msg)
            }
        }
    });
</script>
</html>
  • v-show—显示或隐藏
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--引入vue核心库之后 默认有一个Vue内置对象-->
<script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
<body>
    <!--
        v-on 绑定事件 绑定表达式或者事件
    -->
    <div id="god">
        <span v-show="isShow">这是秘密...</span>
        <input type="button" value="显示或隐藏" @click="show">
    </div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el 表示配置挂载的标签 一般都挂载id选择器 */
        el:"#god",//挂载类型选择器(.god),挂载标签(div)
        /*data准备的数据*/
        data:{
            isShow:true
        },
        methods:{
            show(){
                this.isShow=!this.isShow;
            }
        }
    });
</script>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值