Vue入门

一、Vue的使用

        Vue使用最多的版本是2xx和3xx。两者的使用方式有一定的区别。

//Vue2
<div id="app">
    <p>{{msg}}</p>
</div>
<script>
    //vue2的方式
    new Vue({
         el:"#app",
         data:{
             count:0,
             msg:"hello"
         }
     })
</script>

//Vue3
<div id="app">
  {{ message }}
</div>
<script>
    const VueApp = {
      data() {
        return {
          message: 'Hello Vue!!'
        }
      }
    }
    Vue.createApp(VueApp).mount('#app')
</script>

二、指令

        Vue中双大括号为插值表达式,因此刷大括号中可以写任何表达式,语句则是错误写法。

<div id="app">
    <p>{{title}}</p>
    <p>{{count>18?'yes':'no'}}</p> 
    <!-- 下面的是错误,为语句 -->
    <!-- <p>{{if(count){return 666}}}</p> -->
</div>
<script>
    const VueApp = {
        data() {
            return {
                title: '新闻',
                content: '新闻内容<a>jiu wei</a>',
            }
        }
    }
    Vue.createApp(VueApp).mount('#app')
</script>

 

        1、基础指令

  • v-html:content是data数据源中的属性值(相当于一个变量),在双大括号后运行,底层相当于innerHTML,能够解析标签。
  • v-text:content相当于一个变量,在双大括号后运行,底层相当于innerText。
  • v-pre:能够将{{title}}原封不动的显示,不解析。
  • v-cloak:在vue框架运行后,这个属性就去掉了。
<div id="app">
    <p v-html="content">{{title}}</p>
    <!-- p.innerText = '新闻'  p.innerHTML = '新闻内容<a>jiu wei</a>' -->
    <p v-text="content"></p>
    <p v-pre>{{title}}是vue的一种插值语法,v-pre会静默</p>
    <!-- <input type="text" v-bind:value="value"> -->
    <input type="text" :value="value">
    <!-- 将obj对象中的内容全部作为标签的属性 -->
    <a v-bind="obj"></a>

    <button v-on:click="fn">btn1</button>
    <!-- 阻止冒泡 -->
    <button @click.stop="fn">btn2</button>
    <!-- 只能执行一次,后续没有用 -->
    <button @click.once="fn">btn3</button>
    <br>
    <img :src="image" @click="change" alt="">
</div>
<script>
    const VueApp = {
        data() {
            return {
                w:'100px',
                h:'100px',
                title: '新闻',
                content: '新闻内容<a>jiu wei</a>',
                value: '123456',
                obj: {
                    id: 'ab',
                    href: 'www.baidu.com'
                },
                image: 'https://img1.baidu.com/it/u=3829178789,2231364962&fm=253&app=120&size=w931&n=0&f=JPEG&fmt=auto?sec=1696870800&t=b9ad4f4457eb6aa57fe72c8bda43dd7c'
            }
        },
        methods: {
            // fn:function(){}
            fn() { console.log('点了') },
            change() {
                this.image = 'https://img2.baidu.com/it/u=861863691,2776527252&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500'
            },
        }
    }
    Vue.createApp(VueApp).mount('#app')
</script>

       2、属性绑定

        v-bind:将数据绑定到HTML元素的属性上的,用法为“v-bind:属性名=‘变量名(取值)’”语法糖写法是“:”。

       3、事件绑定

      v-on:click=“函数名”,语法糖写法“@click=‘函数名’”。在函数内部this.变量名,可以修改数据源。

  • @click.once:只触发一次
  • @click.stop:阻止冒泡
  • @click.capture:在捕获阶段触发
  • @click.self:事件链会经过它,但只有点击对象是该元素才会触发。

        4、样式绑定

        有3种绑定方式:变量、对象、数组

<div id="app">
    <div :class="box"></div>            //box为变量,在数据源中取值,box1作为类名
    <div :class="{box:flag}"></div>     //flag为变量,值为true则box作为类名,false则不是
    <div :class="[box2,'b2']"></div>    //box为变量,取值box2为类名,b2作为类名

    <div :style="sty"></div>
    <div :style="{width:'100px',height:'100px',backgroundColor:'blue'}"></div>
    <div :style="[w,'backgroundColor:yellow']"></div>
</div>
<script>
    const VueApp = {
        data() {
            return {
                box:'box1',
                box2:'box2',
                flag:true,
                sty:{
                    width:'100px',
                    height:'100px',
                    backgroundColor:'red'
                },
                w:{
                    width:'100px',
                    height:'100px' 
                }
            }
        },
    }
    Vue.createApp(VueApp).mount('#app')
</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值