IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 前端05-vue -> 正文阅读

[JavaScript知识库]前端05-vue

json

在这里插入图片描述

vue-事件修饰符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 300px;
            height: 300px;
            background-color: aqua;
        }

        .minbox {
            width: 100px;
            height: 100px;
            background-color: blue;
        }
    </style>
    <script src="./jquery/vue.js"></script>
    <script>
        window.onload=function(){
            new Vue ({
                el:'#app',
                data:{

                },
                methods:{
                    firstClicked:function(){
                        alert('box')
                    },
                    secondClicked:function(){
                        alert('minbox')
                    }
                }
            })
        }
    </script>
</head>
<body>
    <div id="app">
        <div class="box" @click="firstClicked">
            <!-- 第一种:这时点击会将该点击事件传给父级 -->
            <!-- <div class="minbox" @click="secondClicked">    -->
                <!-- 阻止事件 -->
            <div class="minbox" @click.stop.prevent="secondClicked"> 
            </div>
        </div>
    </div>
</body>
</html>

练习题-弹窗

第一种–jquery:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./main.css">
    <script src="./jquery/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
           
            //第一种方法
            $('#btn01').click(function(){
                $('#pop').show()     
            })
            $('#shutoff').click(function(){
                $('#pop').hide()
            })
            $('.mask').click(function(){
                $('#pop').hide()
            })
            //第二种方法  
            /*$('#btn01').click(function(){
                $('#pop').show()
                return false   //阻止事件冒泡
            })
            $('#shutoff').click(function(){
                $('#pop').hide()
            })
            $('body').click(function(){
                $('.pop_con').hide()
            })
            $('.pop_con').click(function(){
                return false
            })*/
        })
    </script>
</head>
<body>
    <input type="button" value="弹出弹窗" id="btn01">
    <div class="pop_main" id="pop">
        <div class="pop_con">
            <div class="pop_title">
                <h3>系统提示</h3>
                <a href="#" id="shutoff">x</a>
            </div>
            <div class="pop_detail">
                <p class="pop_text">亲!请关注近期的优惠活动!</p>
            </div>
            <div class="pop_footer"></div>
        </div>
        <div class="mask"></div>
    </div>
</body>
</html>

第二种–vue:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>聊天</title>  
    <style>
        .outBox {
            width: 322px;
            height: 360px;
            border: 1px solid black;
            /* padding: 50px; */
        }
        .box {
            width: 300px;
            height: 300px;
            border: 1px solid black;
            margin: 10px;
            overflow:auto

        }
        select {
            margin-left: 10px;
        }
        .bTalk {
            text-align: left;
        }
        .aTalk span{
            background-color: blue;
            color: aliceblue;
        }
        .bTalk {
            text-align: right;
        }
        .bTalk span{
            background-color: gold;
            color: aliceblue;
            /* float: right; */
        }

    </style>
    <script src="../jquery/vue.js"></script>
    <script>
        window.onload=function(){
            new Vue({
                el:"#app",
                data:{
                    inputValue:'',
                    sayValue:'0',
                    array:[ //之所以使用数组而不是字典,是因为字典中的键是唯一的
                        {who:"A",said:"还没吃吗?"},
                        {who:"B",said:"吃了,你呢?"}
                    ]
                },
                methods:{
                    clicked:function(){
                        if (this.inputValue==''){
                            alert('输入内容为空,请重新输入')
                            return
                        }
                   
                        this.array.push({who:(this.sayValue=='0'?'A':'B'),said:this.inputValue})
                        this.inputValue=''

                    }
                }

            })
        }
    </script>
</head>
<body>
    <div id="app">
        <div class="outBox">
            <div  class="box" id="words">  
                <!-- 小胡子语法 <>{{}}</>  而不可以直接使用在>里面 -->
                <div v-for="item in array" :class="[item.who=='A'?'aTalk':'bTalk']"><span>{{item.who}}说:{{item.said}}</span></div>
                <!-- <div class="bTalk"><span>B说:吃了,你呢?</span></div> -->
    
            </div>
            <div>
                <!-- v-model  双向绑定 -->
                <select name="" id="input02" v-model="sayValue">
                    <option value="0" id="aSay">A说</option>
                    <option value="1" id="bSay">B说</option>
                </select>
                <input type="text" id="input01" v-model="inputValue">
                <input @click="clicked" type="button" value="提交" id="btn">
            </div>         
        </div>
    </div>   
</body>
</html>

过滤器

内置过滤器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./jquery/vue.js"></script>
    <script>
        window.onload=function(){
            new Vue({
                el:'#app',
                data:{
                    msg:"hello word"
                },
                filters:{ //内置过滤器  可以写多个函数
                    reverse:function(value){
                        return value.split('').reverse().join('')
                    }
                }
            })
        }
    </script>
</head>
<body>
    <div id="app">
        {{msg}}
        <br> 
        {{msg | reverse}}
    </div>
</body>
</html>

外置过滤器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./jquery/vue.js"></script>
    <script>
        window.onload =function(){
            //一个外置过滤器里面只能写一个函数
            Vue.filter('upper',function(value){
                return value.toUpperCase()
                })

            Vue.filter('lower',function(value){
            return value.toLowerCase()
            })
            new Vue({
                el:"#app",
                data:{
                    msg:"hello word"
                }

            })
        }
        
    </script>
</head>
<body>
    <div id="app">
        {{msg|upper}}
        <br>
        {{msg|upper|lower}}
    </div>
</body>
</html>

自定义指令

外部

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./jquery/vue.js"></script>
    <script>
        window.onload=function(){
            Vue.directive('style',{   //自定义指令名
                inserted:function(el){
                    el.style.width='300px',
                    el.style.height='300px',
                    el.style.background='blue'
                }
            }

            )

            new Vue({
                el:"#app",
            })
        }
    </script>
</head>
<body>
    <div id="app">
        <!-- 自定义指令:v-style -->
        <div v-style></div>
    </div>
</body>
</html>

内部

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./jquery/vue.js"></script>
    <script>
        window.onload=function(){
            Vue.directive('style',{   //自定义指令名
                inserted:function(el){
                    el.style.width='300px',
                    el.style.height='300px',
                    el.style.background='blue'
                }
            }

            )
            new Vue({
                el:"#app",
                directives:{
                    'focus':{
                        inserted:function(el){
                            el.focus()
                            el.style.background='pink'
                        }
                    }}
            })
        }
    </script>
</head>
<body>
    <div id="app">
        <input type="text" v-focus>
    </div>
</body>
</html>

定时器之箭头函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        /*定时器 1.调用的代码  2.定时的时间(只能以毫秒为单位)   定时器是异步执行的*/
        //setTimeout(func,3000)   //一次性定时器
        setInterval(()=>{
            alert('func')},3000)   //箭头函数
        // var timer = setInterval(func,3000)    //多次定时器
        // function func () {
        //     alert('func')
        //     clearInterval(timer)    //清除定时器,传一个参数,参数是定时器的名字
        // }
    </script>
</head>
<body>
    
</body>
</html>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:15:01  更:2022-04-27 11:16:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:49:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码