vue_day1

准备阶段

在Terminal面板输入
1.npm init -y 初始化
2.npm install vue 局部安装(当前项目使用)

导入vue的核心库
引入js文件不能使用单标签并且标签内不能有东西
该页面有一个内置对象叫做Vue

 <script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>

es6语法规范

1声明变量的方式.html

<script type="text/javascript">
    /*
    : var和let申明变量的区别
    let是申明块级的变量(局部变量)
    */
        var a = 5;
        let b = 5;
        console.debug("var"+a,"let"+b);
        for(var i=0;i<10;i++){

        }
            console.debug("var"+i);
        for(let j=0;j<10;j++){

        }
             console.debug("let"+j);
    /*
     *es6语法规范2: const
    * const 也是用来申明变量的,被const申明的变量就是一个常量
    * */
    const c = 4;
    console.debug("改变前"+c);
    c = 5;//c变量是一个常量,一旦赋值之后,该值是不能被更改的
    console.debug("改变后"+c);
</script>

2解构表达式.html

<script type="text/javascript">
    var arr = ["cc", "xx", "yy"];
    //结构数组
    var [a,b,c] = arr
    console.debug(a)
    console.debug(b)
    console.debug(c)

    var p = {
        name:"春丽",
        age:22,
        sex:true
    }
  /*  var {name,age,sex} = p
    console.debug(name)
    console.debug(age)
    console.debug(sex)*/

    function test({name,age,sex}){
        console.debug("解析", name, age, sex);
    }
    test(p)

</script>

3箭头 表达式.html

<script type="text/javascript">
    var p = {
        name:"王天霸",
        age:22,
        show1:function(msg){
            //以前最开始申明函数的方式
            console.debug(this.name + "   " + this.age);
        },
        //新的写法1  箭头函数this是属于当前创建环境this是一致的
        show2:(msg)=>{
            //如果箭头函数外面还有函数,那箭头函数的this是和外层函数this一致,如果外层没有函数,该this就是window
            console.debug("方式一",p.name,this.name);
        },
        show3(msg){//新的写法2
            console.debug("方式二");
        }
    }

    p.show1();
    p.show2();
    p.show3();

</script>

04Promise的使用.html

<script type="text/javascript">
    const p = new Promise((resolve, reject) =>{
        const num = Math.random();
        // 随机返回成功或失败
        if (num < 0.5) {
            resolve("成功num:" + num)
        } else {
            reject("出错num:" + num)
        }
    })//以后上面这坨代码我们都看不到的

    // 调用promise
    p.then(function (msg) {//如果调用成功执行该function函数中的内容
        console.log(msg);
    }).catch(function (msg) {//如果调用失败执行cat代码块中的内容提供
        console.log(msg);
    })
</script>

05模块化.html

//导出方案1
/*
export const util = {
        sun1(){

        },
        sun2(){

        }
}
*/

//导出方案2
/*
const util = {
        sun1(){

        },
        sun2(){

        }
}
export  util;
*/
/*
let name = "名字";  一次性导出多个
let age = 22;
const person = {
    show(){

    }
}
export {name, age,person};
*/

//导出默认的名字
export default {
    show1(){

    }
}

export default{
    show2(){

    }
}
/*import util from "b"   名字叫做util*/
/*import {name, age,person} from "b";  一次导入多个*/
import randomfrom "b"

random.show1();
random.show2()

06vueTest.html

<body>
<!--准备dom节点-->
<div id="app">
    {{msg}}<br>
    <span style="color: deeppink">{{msg}}</span><br>
    {{person}}
    <br>
    {{person.name}}
    <br>
    <span style="color: deeppink">{{sayHello1()}}</span><br>
    <span style="color: deeppink">{{sayHello2('传递参数')}}</span><br>
</div>
{{msg}}
</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el:申明挂载的视图*/
        el:"#app",
        /*准备的数据*/
        data:{
            msg:"hello vue",
            person:{
                name:"person",
                age:22,
                sex:"男"
            },
            sayHello1(){
                return "Hello";
            },
            sayHello2(msg){
                return msg;
            }
        }
    });
    //数据改变
    vue.msg = "数据随之改变";
</script>

07vue_ el.html

<body>
<!--准备dom节点-->
<div id="app">
    id: <span style="color: deeppink">{{msg}}</span><br>
</div>
<div class="app">
    class1: <span style="color: deeppink">{{msg}}</span><br>
</div>
<div class="app">
    class2: <span style="color: deeppink">{{msg}}</span><br>
</div>
</body>
<script type="text/javascript">
    var vue = new Vue({
        /*el:申明挂载的视图*/
        el:"#app",
        /*准备的数据*/
        data:{
            msg:"id",
        }
    });
    var vue = new Vue({
        /*el:申明挂载的视图*/
        el:".app",
        /*准备的数据*/
        data:{
            msg:"class",
        }
    });
</script>

08vue_ date.html

<body>
<div id="app">
    {{msg}}</br>
    {{num}}</br>
    {{person}}</br>
</div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        el:"#app",
        data:{
            msg:"测试",
            num:11,
            sex:true,
            person:{
                name:"测试弹窗",
                age:33
            }
        }
    });
    alert(vue.person.name);
    </script>

09vue_ method.html

<body>
<!--准备dom节点-->
<div id="app">
    {{sayHello("AAAA")}}=={{sayHello1()}}
</div>


</body>
<script type="text/javascript">
    /*
       methods:当前vue实例中所有的方法都放在methods中
    *
    * */
    var vue = new Vue({
        el: "#app",
        data: {
            msg: "测试",
            name: "姓名",
            sex: true
        },
        methods: {
            sayHello(msg) {
                alert(msg);
                return "改变";
            },
            sayHello1() {
                return "姓名:" + this.name + "  性别:" + this.sex;
            }
        }
    });

    console.debug(vue.sayHello1());
    alert(vue.person.name);


    alert(vue.sayHello());


</script>

10vue_运算和三目.html

<!--准备dom节点-->
<div id="app">
    {{num1}}+{{num2}}={{num1+num2}}<br/>
    {{num1}}-{{num2}}={{num1-num2}}<br/>
    {{num1}}*{{num2}}={{num1*num2}}<br/>
    {{num1}}/{{num2}}={{num1/num2}}<br/>
    {{num1}}%{{num2}}={{num1%num2}}<br/>
    <!--   vue三目运算中认为false的有6个值:  0 null  NaN  undefined   false  ""  其它值全部为true-->
    {{sex?"男":"女"}}
</div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        el:"#app",
        data:{
            num1:10,
            num2:5,
            sex:0
        }
    });
</script>

11vue 字符串方法.html

<body>
<!--准备dom节点-->
<div id="app">
    <!--  注意:胡须表达式 它也是可以调用对等类型的方法-->
    {{str}}<br>
    {{str.length}}<br>
    <!--第二位到第四位-->
    {{str.substring(2,5)}}<br>
    <!--第二位开始截取五个-->
    {{str.substr(2,5)}}<br>
    <!--大写-->
    {{str.substring(2,5).toUpperCase()}}<br>
    {{str.substring(2,5).toLowerCase()}}<br>
</div>


</body>
<script type="text/javascript">
    var vue = new Vue({
        el:"#app",
        data:{
            str:"abcdefg"
        }
    });
</script>

12vue-v-text和v-html.html

<body>
    <!--准备dom节点-->
    <div id="app">
        <!--v-text:
        如果设置的代码有html代码,它只会当成一个纯文本进行展示
        -->
        <div v-text="text">
            text
        </div>
        <!--v-html:
       如果设置的代码有html代码,能被浏览器所解析的
        -->
        <div v-html="html">
            html
        </div>
    </div>


</body>
<script type="text/javascript">
    var vue = new Vue({
        el:"#app",
        data:{
           text:"<h1>text</h1>",
           html:"<h1>html</h1>"

        }
    });
</script>

13vue-v-for.html

<body>
    <!--准备dom节点-->
    <!--在vue中循环迭代支持的元素:
    整数  字符串  数组  对象-->
    <div id="app">
        <ul>
            <!--如果是数字 它默认是从1开始的-->
            <li v-for="(v,i) in number">{{v}} |索引:{{i}}</li>
        </ul>

        <hr/>
        <!--如果你对字符串进行循环迭代,那每次拿到的是每个字符-->
        <p v-for="(v,i) in str">{{v}}  |索引:{{i}}</p>
        <hr/>

        <select>
           <!--循环数组,拿到的值就是数组中的元素-->
           <option v-for="(v,i) in hobbys">{{v}} |索引:{{i}}</option>

        </select>

        <hr/>
        <!--循环对象    -->
        <span v-for="(v,k,i) in person">属性名{{k}}</span><br>
        <span v-for="(v,k,i) in person">      值{{v}}</span><br>
        <span v-for="(v,k,i) in person">    索引{{i}}</span><br>
    </div>


</body>
<script type="text/javascript">

    var vue = new Vue({
        el:"#app",
        data:{
           number:10,
           str:"itsource",
           hobbys:["唱","跳","rap","篮球"],
           person:{
               name:"1",
               email:"2",
               skill:"3"
           }
        }
    });
</script>

14vue-v-bind.html

<body>
    <!--v-bind  主要用来绑定属性的-->
    <div id="app">
        <!--方式1-->
        <!--取出所有字段-->
        <img v-bind:Property="myProperty" v-bind:src="src" v-bind:width="width"
             v-bind:height="height" v-bind:alt="alt">
        <!--方式2-->
        <!--省略v-bind-->
       <img :xxx="myProperty" :src="src" :width="width" :height="height" :alt="alt">
        <!--方式3-->
        <!--传递一个对象-->
        <img v-bind="options">
        <img v-bind="options">
    </div>


</body>
<script type="text/javascript">
    var vue = new Vue({
        el:"#app",
        data:{
            src:"timg.jpg",
            width:"auto",
            height:"auto",
            alt:"正在加载中",
            myProperty:"自定义属性",
           options:{
                src:"timg.jpg",
                width:"auto",
                height:"auto",
                alt:"正在加载中",
                myProperty:"自定义属性"
            }

        }
    });
</script>

15vue-v-model.html

<body>
    <!--
        v-model  双向绑定
        支持的标签:<input>
                  <select>
                  <textarea>
    -->
    <div id="app">
        <input type="text" v-model="Customtext">{{Customtext}}
        <hr/>
        <br>
        <!--多选-->
        <input type="checkbox" v-model="num" value="1">1
        <input type="checkbox" v-model="num"  value="2">2
        <input type="checkbox" v-model="num"  value="3">3
        <input type="checkbox" v-model="num"  value="4">4
        <br/>
        {{num}}
        <br>
        <hr/>
        <br>
        <!--单选-->
        <input type="radio" v-model="sex" value="0"><input type="radio" v-model="sex" value="1"><br/>
        {{sex}}
        <br>
        <hr/>
        <!--下拉-->
        <select v-model="country">
            <option value="-1">请选择</option>
            <option value="1">中国</option>
            <option value="2">美国</option>
            <option value="3">日本</option>
        </select>
        {{country}}
        <br>
        <hr/>
        <textarea v-model="intro"></textarea>{{intro}}
        <br>
        <hr/>
    </div>


</body>
<script type="text/javascript">
    var vue = new Vue({
        el:"#app",
        data:{
            Customtext:"默认值",
            num:["1","4"],
            sex:0,
            country:"-1",
            intro:"输入框"
        }
    });
</script>

16vue-v-if.html

<body>
    <div id="app">
        <span style="color: red;" v-if="myColor==1">红色</span>
        <span style="color: deeppink" v-else-if="myColor==2">粉色</span>
        <span style="color: darkgreen;" v-else-if="myColor==3">绿色</span>
        <span style="color: darkblue;" v-else>蓝色</span>
    </div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        el:"#app",
        data:{
           myColor:2
        }
    });
</script>

17vue-v-on.html

<body>
    <!--v-on: 语法格式,应该写表达式或者触发的函数-->
    <div id="app">
        <!--方式一-->
        <input type="button" v-on:click="num++" value="计数器">
        {{num}}
        <hr/>
        <!--方式二-->
        <input type="button" @click="show('参数传递')" value="点击事件">
        <hr/>
        <input type="button" @mouseover="over" @mouseout="out" value="移进移出">
    </div>
</body>
<script type="text/javascript">
    var vue = new Vue({
        el:"#app",
        data:{
           num:0
        },
        methods:{
            show(msg){
                alert("点击成功"+" "+msg+"成功");
            },
            over(){
                alert("接触成功");
            },
            out(){
                alert("离开成功");
            }
        }
    });
</script>

18vue-v-show.html

<body>
    <!--v-show: 控制标签属性   style="display: block" 或者 style="display: none"-->
    <div id="app" >
        <div v-show="isShow1">隐藏</div>
        <div v-show="isShow2">显式</div>
        <input type="button" @mouseover="over" @mouseout="out" value="显示和隐藏">
    </div>
</body>
<script type="text/javascript">
    var vue = new Vue({
        el:"#app",
        data:{
            isShow1:true,
            isShow2:false
        },
        methods:{
            over(){
                this.isShow1 = !this.isShow1;
                this.isShow2 = !this.isShow2;
            },
            out(){
                this.isShow1 = !this.isShow1;
                this.isShow2 = !this.isShow2;
            }
        }
    });
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值