首页 > 其他分享 >Vue 02

Vue 02

时间:2023-02-14 18:46:45浏览次数:30  
标签:02 style Vue url 标签 app list var

Vue

1.插值语法

  • 插值语法中可以放:
    • 变量,对象取值,数组取值
    • 简单的js语法
    • 函数 (function())
  • 插值语法不能写在标签的属性中,只能写在标签的内部
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>

</head>
<body>
<div>


    <div id="app">
        <h3>字符串</h3>
        <p>姓名:{{ name }}</p>
        <p>年龄:{{age}}</p>

        <h3>数组</h3>
        <p>爱好:{{hobby}}</p>
        <p>爱好:{{hobby[2]}}</p>

        <h3>对象</h3>
        <p>身份信息:{{info}}----- 年龄:{{info.age}} ----{{info['age']}}</p>

        <h3>运算</h3>
        <p>运算:{{10*3+2}}</p>

        <h3>三目运算</h3>
        <p>【条件?  '符合':'不符合'】{{10>8? '大于':'小于'}}</p>

        <h3>标签(默认是不会渲染成标签的):</h3>
        <p>{{url_a}}</p>
    </div>

</div>
</body>
<script>
  var vm = new Vue({
      el:'#app',
      data:{  // data中是定义的白能量,以后直接从VM实例值就能拿到
          name:'小可爱',
          age:18,
          hobby:['篮球','阅读','画画'],
          info:{name:'小鱼',age:'19'},
          url_a:'<a href="http://www.baidu.com">百度</a>'

      }
  })
</script>
</html>

image-20230214144830224

文本指令

  • 文本指令写法
    • v-xx写在标签上,可以是任意标签
  • v-xx='' 在原来的插值语法中能写的,它都能写,不需要加上{{}}
 # 指令系统:Vue提供的 v-xx 写在标签属性上的这个统称为:
	系统指令
例如:<p v-text="a_url"></p>  ,a_url必须是data中定义的变量

常见的指令:

#v-text 直接将字符串内容渲染到标签内部,等同于是
	<p v-text="a_url"></p>
    <p>{{a_url}}</p>

# v-html 把字符串的内容渲染成标签,写在标签内部
	<p v-html="a_url"></p>

# v-show 等同于是布尔值,该标签是显示,是否需要显示。
	style="display: none;" 在标签中加上style属性
 # v-if 等同于是布尔值,该标签是显示,是否需要显示。
	整个标签都直接删除,效率较低,使用的是在虚拟中的DOM操作删除标签
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>

</head>
<body>
<div id="app">
    <p v-text="a_url"></p>
    <p v-html="a_url"></p>
    <img v-show="show" src="https://img1.baidu.com/it/u=3909716200,3444137020&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=800" alt="">
    <div v-if="show_if">
          <img src="https://img1.baidu.com/it/u=3909716200,3444137020&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=800" alt="">
    </div>
</div>
</body>
<script>
    var VM=new Vue({
        el:'#app',
        data:{
            a_url:'<a href="http://www.baidu.com">点点点</a>',
            show:true,
            show_if:true,
        }
    })
</script>
</html>

属性指令

  • 属性指令就是添加在属性上的指令
  • 通过标签绑定变量,以后变量发生变化,属性的值就跟着变
一些常见的属性:
	href,src,name,style,width,height

语法操作:

语法:
	v-bind:属性名='变量名'
 简写:
	:属性名='变量名'

事件指令

  • 事件是指执行的动作
    • 点击事件,双击事件,滑动事件,焦点事件
语法:
	v-on:事件名='函数'
    
例子:	
<button v-on:click="handleClick">点我点我</button>
函数不必须写在methods的配置中
	methods:{
            'handleClick':function (){
                // alert('美女')
                console.log(this)  // this 就是当前vue实例,就是vm实例
                this.show=!this.show
            },  
        }
---点击button按钮就会触发绑定的函数(handleClick)的执行

简写:
	@事件名='函数'
    
ps:
	1.在methods配置项中写成下面这种形式;(这是es6 的对象写法)
    	handleClick() {}
     如果函数中再套的有函数,如果不是箭头函数,this 指向是有问题的,需要在嵌套的函数外面定义一下
    var _this=this
# 点击按钮,随机切换图片
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>

</head>
<body>
<div id="app">
    <button @click="handleClik">点击切换图片</button>
    <div>
        <img :src="url" alt="" width="400px" height="400px">
    </div>
</div>
</body>
<script>
    var vm=new Vue({
        el:'#app',
        data:{
            url:'https://img0.baidu.com/it/u=1332712130,3716719298&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500',
            url_list:[
                'https://img1.baidu.com/it/u=2281720291,2783216291&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=889',
                'https://img1.baidu.com/it/u=3653069921,468582353&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
                'https://img0.baidu.com/it/u=1225258561,1848977140&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500',
                'https://img0.baidu.com/it/u=4200967607,2839076937&fm=253&fmt=auto&app=120&f=JPEG?w=332&h=499',
                'https://img0.baidu.com/it/u=1378373671,2406487365&fm=253&fmt=auto&app=120&f=JPEG?w=1280&h=800',
            ],

        },
        methods: {
            // 'handleClik': function () {
            //     // var i = Math.round(Math.random() * (this.url_list.length - 1))
            //     // this.url = this.url_list[i]
            //     var _this = this
            //     setInterval(function () {
            //         var i = Math.round(Math.random() * (_this.url_list.length - 1))
            //         _this.url = _this.url_list[i]
            //     }, 1000)
            // },

            //简写方式:
            handleClik(){
                var _this=this
                setInterval(function () {
                    var i =Math.round(Math.random()*(_this.url_list.length -1))
                    _this.url=_this.url_list[i]

                },1000)
            }
        }}
    )
</script>
</html>

class 和 style

本身他俩都是属性指令,但是他们比较特殊,应用更广泛,
 
# class :推荐用数组
	:class="变量"
  变量可以是字符串,数组,对象

# style :推荐使用对象
	:style:"变量"
 变量可以是字符串,数组,对象
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
    <style>
        .font {
            font-size: 60px;
        }

        .red {
            background-color: red;
        }

        .green {
            background-color: green;
        }

        .font-color {
            color: yellow;
        }
    </style>
</head>
<body>

<div id="app">
    <h1>clss</h1>
    <div :class="class_obj">我是div</div>

    <h1>style</h1>
    <div :style="style_obj">我是style-----div</div>

</div>
</body>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            // class_str:'font',
            // class_list:['font'],   # 推荐
            class_obj: {font: true, green: false, 'font-color': false},

            style_str: 'color: green;font-size:80px',
            // style_list: [{color:'yellow'}, {'font-size':'90px'}],
            style_list: [{color: 'yellow'}, {fontSize: '90px'}],  // 可以用驼峰
            style_obj: {color: 'yellow', fontSize: '80px'}
            // style_obj: {color: 'yellow', 'font-size': '80px'}
        },

    })

</script>
</html>

条件渲染

# v-if =条件,放在标签上,如果条件成立,如果条件成立,该标签就显示,如果条件不成立,该标签就不显示
# v-else-if=条件 放在标签上,如果条件成立,该标签就显示,如果条件不成立,该标签就不显示
# v-else  放在标签上,上面条件都不成立,显示这个标签
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
    <style>

    </style>
</head>
<body>

<div id="app">
    <h1>通过分数显示文字</h1>
    <div v-if="score>=90">优秀</div>
    <div v-else-if="score>=80&&score<90">良好</div>
    <div v-else-if="score>=60&&score<80">及格</div>
    <div v-else>不及格</div>


</div>
</body>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            score: 99
        },
    })

</script>
</html>

列表渲染

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"
          integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
</head>
<body>

<div id="app">

    <div class="container-fluid">
        <div class="row">
            <div class="col-md-6 col-md-offset-3">


                <div class="text-center">
                    <h1>v-if+v-for 显示购物车</h1>
                    <button @click="handleClick" class="btn btn-danger">点我显示</button>
                </div>

                <div v-if="show">

                    <table class="table table-hover">
                        <thead>
                        <tr>
                            <th>id</th>
                            <th>商品名</th>
                            <th>商品价格</th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr v-for="item in good_list">
                            <th scope="row">{{item.id}}</th>
                            <td>{{item.name}}</td>
                            <td>{{item.price}}</td>
                        </tr>
                        </tbody>
                    </table>
                </div>


            </div>
        </div>


    </div>


</div>
</body>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            show: false,
            good_list: [
                {id: 1, name: '钢笔', price: '29'},
                {id: 2, name: '铅笔', price: '29'},
                {id: 3, name: '文具盒', price: '298'},
                {id: 4, name: '彩笔', price: '298'},
            ]
        },
        methods: {
            handleClick() {
                this.show = !this.show
            },

        }

    })
</script>
</html>

标签:02,style,Vue,url,标签,app,list,var
From: https://www.cnblogs.com/qiguanfusu/p/17120567.html

相关文章

  • vue02
    今日内容概要插值语法文本指令属性指令事件指令class和style条件渲染列表渲染今日内容详细插值语法vue的mvvm架构演示<!DOCTYPEhtml><htmllang="en"><he......
  • 2023-2-14 微信小程序 <view>组件字体居中 方法
    当我想要编辑一行文本时,第一个想到的方法是:直接在view组件里面打上想要的字,再设置其text-align属性为centertest.wxml<viewclass="test">测试</view>test.wxss.test......
  • 【2023-02-06】自我反省
    20:00当一个人在情感上对一件事卷入过深,他眼中便渐渐只能看到那些自己“想要”看到的东西,从而对那些他“应当”看到的东西视而不见。           ......
  • 【2023-02-07】浅聊童趣
    20:00我一生,人家都以为我创业艰难,事实上我觉得非常简易;因为集体创作,我只是众中之一,做时全力以赴,结果自然随缘。许多人以为我善于管理,事实上我只是懂得“无为而治”。 ......
  • 通过Vue解决跨域问题(proxy配置代理)【转载】
    当我们在用本机去找服务器要数据时会产生跨域问题,所以利用vue-cli去开启一个代理服务器。方法一:在vue.config.js中添加如下配置//开启代理服务器(方式一)devServer......
  • vue---day01与day02
    上节回顾#1jwt源码分析 -签发: 登录----》ObtainJSONWebToken--->post--->serializer.is_valid()--->走了校验---》正常登录逻辑可以拿到序列化类的validate中写-......
  • 1602 - 总分和平均分
       ......
  • 爬取url遇到302跳转问题怎么解决?
    最近在做爬虫项目遇到一个问题,这里简单的描述下让大家帮忙看下。目标网站需要完成一一系列登录操作,经过抓包测试只需要使用简单的post请求后收到的回包中包含cookie信息,因此......
  • 20230214 T3 绝对伏特加(vodka)
    Vodka题目描述Alan喝了假的绝对伏特加,想问你一个问题:Alan在玩骰子游戏,Alan会玩\(n\)轮骰子,每轮的数值在\([1,K]\)中随机出现。记\(a_i\)表示\(n\)轮投掷中,......
  • Vue3使用vue-router如何实现路由跳转与参数获取
    //跳转传参import{useRouter,useRoute}from'vue-router';constrouter=useRouter()constroute=useRoute()//新开页functionjump(id){consturl=router.......