Vue_初学Vue的基本使用

1.插值表达式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>丑丑</title>
</head>
<body>
    <div id="test" >
        <p>{{fuck}}</p>
    </div>
    
    <script src="./vue-v2.6.10.js"></script>
    <script>
        var vue = new Vue({
            el:"#test",
            data:{
                fuck:"Hello World!!!",
            }


        });

    </script>
</body>
</html>

el:元素的选择器 (比如id选择器->#test      class选择器->.test)

data:数据 (比如kk:"我是内容")

插值的使用:{{fuck}} (插值的使用是 外层用两个大括号包住 里面写data里的属性值)

2.vue指令的使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue指令的使用</title>
</head>
<body>
    <div class="test" >
        <p v-if="kk" >{{fuck}}</p>
    </div>
    
    <script src="./vue-v2.6.10.js"></script>
    <script>
        var vue = new Vue({
            el:".test",
            data:{
                fuck:"Hello World!!!",
                kk:1,
            }
        });

    </script>
</body>
</html>

语法: 

v-if="data里属性的名字"

data 里的 kk 值为1 = true, 0=false 

实现的效果等于 v-if里的值为true是 就显示 为false时加了指令的 元素就会被删除 达到了显示隐藏的效果

3. v-html于v-text的使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue指令的使用</title>
</head>
<body>
    <div class="test" >
        <p  >html</p>
        <p  v-html="html" >html1</p>
        <p  v-html="html2" >html2</p>
        <p  >text</p>
        <p  v-text="text1">text</p>
        <p  v-text="text2">text2</p>
    </div>
    
    <script src="./vue-v2.6.10.js"></script>
    <script>
        var vue = new Vue({
            el:".test",
            data:{
                text1:"我是text1的内容",
                text2:"<s>我被掰弯了</s>",
                html:"我是html的内容",
                html2:"<s>我被掰弯了</s>"
            }
        });

    </script>
</body>
</html>

语法:

v-html="data属性里值的名字"

1.v-html 和一般标签包裹的内容  优先显示 v-html对应的内容

2.v-html 的内容一段 代码时 会编译代码 显示出来

v-text="data属性里值的名字"

1.v-text 和一般标签包裹的内容  优先显示 v-text对应的内容

2.v-text 的内容一段 代码时 不会编译成代码执行 而会原原本本的显示

3. v-bind:href 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./vue-v2.6.10.js"></script>
</head>
<body>
    <div id="app">
        <!-- v-bind 绑定属性值的 v-bind:属性名字 -->
        <!-- <img v-bind:src="img_path" alt=""> -->

        <a v-bind:href="'http://127.0.0.1:900/getone?id='+ids"></a>

    </div>
</body>
<script>
    var app = new Vue({
        el:'#app',
        data:{
            img_path:'./4-small.jpg',
            ids:'1'
        }
    });

</script>
</html>

语法:

v-bind:标签属性名称

需要注意 如果是传递值的 时候 'http://127.0.0.1:900/getone?id=‘  如果是写死的代码 得再用一个单引号‘’包住

传递的变量数值 照常用+拼接

v-bind:class 的使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>香蕉船</title>
    <style type="text/css">
        .r{
            color: aliceblue;
        }
        .g{
            background-color: lightgreen;
        }
    </style>
</head>
<body>
    <div class="app">
        <div v-bind:class="isg">aaaa</div>
    </div>

    <script src="vue-v2.6.10.js"></script>
    <script>
        var app = new Vue({
            el:".app",
            data:{
                isr:'r',
                isg:'g'
            }
        });
    </script>
</body>
</html>

先定义好CSS  然后在app 对象里 指定CSS名称 用单引号引起 

在 绑定的class属性里写上app里指定的名称

 多个指定样式用 [] 扩起来  逗号,分割

 效果:

v-bind:style

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>香蕉船</title>
    <style type="text/css">
        .r{
            color: aliceblue;
        }
        .g{
            background-color: lightgreen;
        }
    </style>
</head>
<body>
    <div class="app">
        <div v-bind:style="{color:r,fontSize:f+'px'}" >aaaa</div>
    </div>

    <script src="vue-v2.6.10.js"></script>
    <script>
        var app = new Vue({
            el:".app",
            data:{
                r:'red',
                f:50
            }
        });
    </script>
</body>
</html>

style样式标签里 用{} 扩起来

样式属性 有 - 拼接的去掉 - 

 多个样式用 , 隔开

变量和字符串用+号拼接

 效果:

 第二种写法:

变量值用[] 扩起来 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>香蕉船</title>
    <style type="text/css">
        .r{
            color: aliceblue;
        }
        .g{
            background-color: lightgreen;
        }
    </style>
</head>
<body>
    <div class="app">
        <div v-bind:style="[r,f]" >aaaa</div>
    </div>

    <script src="vue-v2.6.10.js"></script>
    <script>
        var app = new Vue({
            el:".app",
            data:{
                r:{
                    color:'red'
                },
                f:{
                    fontSize: '50px'
                }
            }
        });
    </script>
</body>
</html>

v-bind 的简写形式

:标签属性名

:号加标签属性名字

示例:

<div :style="[r,f]" >aaaa</div>

单项数据绑定

修改vue 对象里的值 会影响前端页面的值 

修改前端页面的值 但 不会影响vue对象里的值 

双向数据绑定

改变页面和改变vue的值 都会使vue对象或页面里的值 发生改变

v-model:标签属性值

示例:

<input type="text" v-model:value="val" />

 第二种写法:

<input type="text" v-model="val" />

v-model 不能使用在展示标签中 例如 p 标签 div 标签等

v-model 只能用在用户可操作的 标签上 例如 input标签 

复选框获取值问题

    <div class="app">
        <form  action="#">
            <input type="checkbox" name="eat" value="吃饭" v-model="checked" />吃饭
            <input type="checkbox" name="sleep" value="睡觉" v-model="checked" />睡觉
            <input type="checkbox" name="doudou" value="打豆豆" v-model="checked" />打豆豆
            {{checked}}

            <input type="radio" name="rad" value="男" v-model="sex"/>男
            <input type="radio" name="rad" value="女" v-model="sex"/>女
            {{sex}}
        </form>
    </div>




    <script src="vue-v2.6.10.js"></script>
    <script>
        var app = new Vue({
            el:".app",
            data:{
                checked:[],  //复选框 选中的值
                sex:[]  //单选按钮 选中的值
            }
        });

    </script>

 input  checkbox 标签上加上 v-model="app对象data里的属性名"

单选按钮获取值的问题

  input  radio 标签上加上 v-model="app对象data里的属性名"

事件修饰符

官方文档:

API — Vue.jsVue.js - The Progressive JavaScript Frameworkhttps://cn.vuejs.org/v2/api/#v-model

 v-model.number 强制转换为数值类型

v-model.trim 去掉首尾的空格字符

绑定事件

官方文档:

API — Vue.jsVue.js - The Progressive JavaScript Frameworkhttps://cn.vuejs.org/v2/api/#v-on

v-on:click="app对象data里的方法名" 

 

  

v-show

v-show="boolean"

 使用v-show控制标签来回切换显示

 

v-if

v-if="判断"

v-else-if="判断"

v-else=""

v-for 

v-for="(值,键) in 数组名"

输出数组 

 

输出对象

v-once

数据只渲染一次 只绑定一次 之后不会改变 

生命周期:

Vue 实例生命周期

 

<script>
        var app = new Vue({
            el:'#siki',
            data:{
                msg:''
            },
            beforeCreate(){
                console.log('1.我是beforeCreate,创建之前执行' );
            },
            created(){
                console.log('2.我是create,创建完成之后执行');
            },
            beforeMount(){
                console.log('3.我是beforeMount,被挂载之前调用');
            },
            mounted(){
                console.log('4.我是mounted,被挂载之后调用'+ this.$refs.msgText.innerHTML);
            },
            beforeUpdate(){
                console.log('5.我是beforeUpdate,数据跟新之前被调用'+ this.$refs.msgText.innerHTML);
            },
            updated(){
                console.log('6.我是update,数据跟新之后被调用'+ this.$refs.msgText.innerHTML);
            },
            beforeDestroy(){
                console.log('7.我是beforeDestroy,销毁之前被调用');
            },
            destroyed(){
                console.log('8.我是destroyed,销毁之后被调用');
            },
            methods:{
                OnDestroy(){
                    this.$destroy(); //触发destroyed函数 销毁函数
                }
            }
        });

    </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值