Vue基础入门学习笔记 一


前言

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

一、起步

创建一个html文件 然后通过如下方式引入 Vue:

<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

vue的简单应用:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
       /* 视图层:负责页面的布局和渲染*/
 
    <div id="app">
        <h1>hello {{msg}}</h1>
    </div>
  /* 数据逻辑层:交互和数据的控制 */
    <script>
        var app = new Vue({
            // 哪个元素里是使用VUE框架渲染
            el:"#app",
            // 视图层的变量数据
            data:{
                msg:"laowu"
            }
        })

    </script>

    
</body>
</html>

打印结果:
在这里插入图片描述

Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统:

 <div id="app">
        <h1>hello {{msg}}</h1>
  </div>
 var app = new Vue({
            // 哪个元素里是使用VUE框架渲染
            el:"#app",
            // 视图层的变量数据
            data:{
                msg:"xiaowu"
            }
        })

el:指引哪个元素使用了Vue框架渲染
data:视图层的变量数据为msg:"xiaowu"

二、绑定事件和修改数据

 <!-- 
        视图层:负责页面的布局和渲染
    -->
    <div id="app">
        <h1>hello {{msg}}</h1>
        <button @click="toggleFn">切换招呼</button>
    </div>
    <!-- 数据逻辑层:交互和数据的控制 -->
    <script>
        var app = new Vue({
            // 哪个元素里是使用VUE框架渲染
            el:"#app",
            // 视图层的变量数据
            data:{
                msg:"laowu"
            },
            // 将视图层的交互方法写到methods属性里
            methods:{
                toggleFn:function(){
                    this.msg = "xiaowu"
                }
            }
        })

打印结果:点击按钮变为"laowu"变为"xiaowu"
在这里插入图片描述

@click=“toggleFn” 绑定事件 相当于以往的onclick

methods:{
      toggleFn:function(){
   this.msg = "小吴"
  }
}

将视图层的交互方法写到methods属性里

三、条件渲染

v-if 使用场景

  • 1- 多个元素 通过条件判断展示或者隐藏某个元素。或者多个元素
  • 2- 进行两个视图之间的切换
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue练习</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div class="app">
        <h1>hello {{msg}}</h1>
        <h2 v-if ="userInfo =='VIP'">欢迎尊贵的VIP进入游戏</h2>
        <h2 v-else>成为VIP用户将使你变得更加强大</h2>
        <button @click="change">改变</button>
        <button @click="guoqi">过期按钮</button>
        <button @click="chongzhi">充值</button>
    </div>
    
    <script>
        var app = new Vue({
        // 哪个元素里是使用VUE框架渲染
            el:".app",
            // 视图层的变量数据
            data:{
                msg:"老吴",
                userInfo:"VIP"
            },
            // 将视图层的交互方法写到methods属性里
            methods:{
                change:function(){
                    if(this.msg == "老吴"){
                        this.msg = "小吴"
                    }else{
                        this.msg = "老吴"
                    }
                },
                guoqi:function(){
                    this.userInfo = "normal";
                },
                chongzhi:function(){
                    this.userInfo ="VIP"
                }
            }
        })

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

点击过期按钮:
在这里插入图片描述

点击充值按钮:
在这里插入图片描述
v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。

<h2 v-if ="userInfo =='VIP'">欢迎尊贵的VIP进入游戏</h2>

也可以用 v-else 添加一个“else 块”:

   <h2 v-if ="userInfo =='VIP'">欢迎尊贵的VIP进入游戏</h2>
    <h2 v-else>成为VIP用户将使你变得更加强大</h2>

userInfo == 'VIP'时 显示:欢迎尊贵的VIP进入游戏
否则显示:成为VIP用户将使你变得更加强大

四、列表渲染

用 v-for 把一个数组对应为一组元素

我们可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。
在 v-for 块中,我们可以访问所有父作用域的 property。v-for 还支持一个可选的第二个参数,即当前项的索引。

<!-- 
        视图层:负责页面的布局和渲染
    -->
    <div id="app">
        <h1>hello {{msg}}</h1>


        <!-- 明星列表 -->
        <ul>
            <li v-for="(item,i) in stars">{{i+1}}{{item}}</li>
        </ul>

        <!-- 学生列表 -->
        <div v-for ="(item,i) in students">
            <div>姓名:{{item.username}} &nbsp; 性别:{{item.sex}}</div>
        </div>
    </div>
    <!-- 数据逻辑层:交互和数据的控制 -->
    <script>
        var app = new Vue({
            // 哪个元素里是使用VUE框架渲染
            el:"#app",
            // 视图层的变量数据
            data:{
                msg:"小吴",
                stars:["小杰","小明","小张","小胡","小吴",],
                students:[
                    {username:"小明",sex:"男"},
                    {username:"小黑",sex:"男"},
                    {username:"小白",sex:"女"},
                    {username:"小红",sex:"女"}
                ]
            }
        })

打印结果:
在这里插入图片描述

五、Vue组件

基本示例

// 定义一个名为 button-counter 的新组件
Vue.component('button-counter', {
  data: function () {
    return {
      count: 0
    }
  },
  template: '<button v-on:click="count++">You clicked me {{ count }} times.</button>'
})

组件是可复用的 Vue 实例,且带有一个名字:在这个例子中是 。我们可以在一个通过 new Vue 创建的 Vue 根实例中,把这个组件作为自定义元素来使用:

<div id="components-demo">
  <button-counter></button-counter>
</div>
new Vue({ el: '#components-demo' })

因为组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项,例如 datacomputedwatchmethods 以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项。(ps:具体内容请查看此处:https://cn.vuejs.org/v2/guide/components.html

案例:

    <!-- 
        视图层:负责页面的布局和渲染
    -->
    <div id="app">
        <h1>hello {{msg}}</h1>


        <!-- 添加组件 -->
        <button-counter></button-counter>
        <button-counter></button-counter>
        <button-counter></button-counter>
    </div>
    <!-- 数据逻辑层:交互和数据的控制 -->
    <script>
       
        
       let buttonCounter =Vue.component('button-counter',{
            //视图层模板
            template:`<div><h1>{{num}}</h1><button @click='addNum'>数字加1</button>&nbsp<button @click='subNum'>数字减1</button></div>`,
            data:function(){
                return {
                    num:0
                }
            },
            methods:{
                addNum:function(){
                    this.num ++;
                },
                subNum:function(){
                    this.num --;
                }
            }
        })
        
        
        var app = new Vue({
            // 哪个元素里是使用VUE框架渲染
            el:"#app",
            // 视图层的变量数据
            data:{
                msg:"laowu"
            },
            component:{
                buttonCounter
            }
        })

打印结果:
在这里插入图片描述
点击按钮:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值