vue从入门到放弃?duck不必,vue基础语法带你装逼。

作为一个小白程序员必须熟悉各个语言的hello world!我们先从最最最基础的在页面渲染出hello world来了解vue最最最基础的语法。

  1. 利用vue实现hello world
<!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>
    <!-- vue的{{}} 渲染数据 -->
    <div id="app">{{ msg }}</div>
    <p>{{ content }}</p>
</body>
<script src="js/vue.js"></script>
<script>
    let vm = new Vue({
        el: '#app',//el:挂载入口,让这个div被我们的vue所管理,注意不能挂载在body和html标签上
        data: { //data:设置数据的地方,对象的形式,属性名写好了,到时候在页面里面直接调用就能渲染数据
            msg: 'hello world!',
            content: '我们的第一个vue程序'
        }
    });
</script>
</html>

效果图如下
在这里插入图片描述
想要管理哪个标签,必须挂载对应的入口,没有挂在是不会被管理到的,例如上图中的p标签,
{{}}中放置需要被渲染的数据,被渲染的数据放在data对象中。
小结:设置挂载点,设置数据,渲染就ok了

  1. 双向绑定数据
    vue其中一个特点是双向绑定数据,也就是著名的MVVM模型,简单来说就是通过数据层控制视图层,视图层通过实例控制数据层。举个例子。
<body>
    <!-- vue的{{}} 渲染数据 -->
    <div id="app">
        <p>{{ msg }}</p>
        <!-- 双向数据绑定 v-model  MVVM -->
        <input type="text" v-model="msg">
    </div>

</body>
<script src="js/vue.js"></script>
<script>
    let vm = new Vue({
        el: '#app',//el:挂载入口,让这个div被我们的vue所管理
        data: { //data:设置数据的地方,对象的形式,属性名写好了,到时候在页面里面直接调用就能渲染数据
            msg: 'hello world!777'
        }
    });
</script>

效果图如下,可见数据层通过设置数据可控制视图层
在这里插入图片描述
当我们改变视图层数据时,通过v-model=“msg”,这个方法把改变了的数据传回数据层中的msg,再次渲染至视图层,(注意数据层中设定的数据不会改变),
在这里插入图片描述
除了{{}}的方式以外,还有几种方式可以了解一下,照葫芦画瓢,上代码

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第一个vue</title>
    <style>
        [v-clock] {
            display: none;
        }
    </style>
</head>

<body>
    <!-- 渲染数据到页面 -->
    <div id="app">
        <h1>1{{}} 渲染数据</h1>
        <p>{{ num }}</p>
        <p>{{ num * 2 }}</p>
        <p>{{ msg }}</p>

        <h1>2、v-html 渲染数据</h1>
        <p v-html="msg"></p>

        <h1>3、v-text 渲染数据</h1>
        <p v-text="msg"></p>

        <h1>4、v-once 只渲染一次</h1>
        <p>{{ math }}</p>
        <p v-once>{{ math }}</p>
        <input type="text" v-model="math">

        <h1>5、v-clock 解决{{}}的闪烁问题</h1>
        <p>{{ num }}</p>
        <p v-clock>{{ num }}</p>
    </div>

</body>
<script src="js/vue.js"></script>
<script>
    let vm = new Vue({
        el: '#app',//el:挂载入口,让这个div被我们的vue所管理
        data: { //data:设置数据的地方,对象的形式,属性名写好了,到时候在页面里面直接调用就能渲染数据
            num: 8,
            msg: '<span>今天心情很美好</span>',
            math: 90
        }
    });
</script>

可以发现v-html可以渲染内容,v-text只能渲染文本,v-once只能渲染一次,改变视图中的数据也不会重新渲染数据,兄弟姐妹们可以自行尝试,还有一个就是v-clock可以解决{{}}闪烁问题,{{}}渲染数据有个bug,对于这个问题由于JavaScript去操作DOM,都会等待DOM加载完成(DOM ready)。对于vuejs、angularjs这些会在DOM ready完会才回去解析html view Template,所以对于Chrome这类快速的浏览器你会看见有闪烁的情况出现。
在这里插入图片描述

  1. 属性的绑定和事件的绑定
    直接上代码感受一下利用v-bind绑定属性可以简写为:,v-on可以绑定事件,事件可以加()也可以不加,可以简写为@,
<body>
    <div id="app">
        <!-- <img src="https://cn.vuejs.org/images/logo.png" alt=""> -->
        <!-- 1、绑定属性值 v-bind:src -->
        <h1>
            1、绑定属性值 v-bind:src
        </h1>
        <img v-bind:src="imgUrl" alt="">
        <h1>2.v-bind的简写 :href</h1>
        <a :href="link">跳转</a>

        <h1>3、事件的绑定 v-on;事件处理函数可以加(),也可以省略</h1>
        <p>单价:99</p>
        <input type="text" v-model="num">
        <p>总价:{{ total }}</p>
        <!-- <input type="button" value="加1" v-on:click="add"> -->
        <!-- <input type="button" value="加1" v-on:click="add()"> -->
        <input type="button" value="加1" @click="add()">
    </div>
</body>
<script src="js/vue.js"></script>
<script>
    let vm = new Vue({
        el: '#app',//挂载的入口不能是body和html标签
        data: {
            imgUrl: 'https://cn.vuejs.org/images/logo.png',
            link: 'https://www.baidu.com',
            num: 1,
            total: 0
        },
        methods: {//methods里面是写事件处理函数的
            //一个个的方法
            add: function () {
                // console.log('点我了');
                // console.log(this.num);
                this.num++;
                this.total = this.num * 99;
            }
        }
    });
</script>

此处增加了一个新属性叫methods,是专门用来存放事件处理函数的,标签中绑定的事件调用时就是调用此处的函数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值