美文网首页
Vue(入门版)

Vue(入门版)

作者: 七喜丶 | 来源:发表于2021-11-09 09:06 被阅读0次

    介绍

    Vue 是一套构建用户界面的渐进式前端框架

    • 只关注视图层,并且非常容易学习,还可以很方便的与其它库或已有项目整合
    • 通过尽可能简单的 API 来实现响应数据的绑定和组合的视图组件
    • 特点
      易用:在有 HTML CSS JavaScript 的基础上,快速上手
      灵活:简单小巧的核心,渐进式技术栈,足以应付任何规模的应用
      性能:20kb min+gzip 运行大小、超快虚拟 DOM、最省心的优化

    入门案例

    <!DOCTYPE html>
    <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-model="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/vue.js"></script> //Vue基于vue.js文件
        <style>
            .color {
                color: red;
            }
        </style>
    </head>
    <body>
        <div id="div">
            <p v-html="name"></p>
            <p :class="cls">{{ classroom }}</p>
            <a v-bind:href="src">百度</a>
            <input type="text"  v-model:value="meg">{{meg}}
            <button @click="updateFont()"> 更新字段</button>
            <button onclick="hi()"> 打招呼</button>
            <button onclick="update()"> 更新班级</button>
    
            <table>
                <tr>
                    <td>id</td>
                    <td>名字</td>
                    <td>班级</td>
                </tr>
                <tr v-for="(stu,index) in students">
                    <td>{{ index+1 }}</td>
                    <td>{{stu.name}}</td>
                    <td>{{stu.classroom}}</td>
                </tr>
            </table>
        </div>
    </body>
    <script>
        let item = new Vue({
            el: "#div",
            data: {
                name: "曹大兵",
                classroom: "一班",
                meg: "aaa",
                src: "www.baidu,con",
                cls: "color",
                students: [{name: "一", classroom: "一班"},{name: "一", classroom: "一班"},{name: "一", classroom: "一班"}]
            },
            methods: {
                study: function () {
                    alert(this.name +"zai" + this.classroom);
                },
                updateFont() {
                    this.meg = "bbb";
                }
            }
        })
    
        function hi() {
            item.study();
        }
    
        function update() {
            item.classroom = "二班";
        }
    </script>
    </html>
    

    入门详解

    • Vue 核心对象:每一个 Vue 程序都是从一个 Vue 核心对象开始的
      let vm = new Vue({
      选项列表;
      });
    • 选项列表
      el 选项:用于接收获取到页面中的元素。(根据常用选择器获取)。
      data 选项:用于保存当前 Vue 对象中的数据。在视图中声明的变量需要在此处赋值。
      methods 选项:用于定义方法。方法可以直接通过对象名调用,this 代表当前 Vue 对象。
    • 数据绑定
      在视图部分获取脚本部分的数据。
      {{变量名}}

    Vue常见命令

    • 指令:是带有 v- 前缀的特殊属性,不同指令具有不同含义。例如 v-html,v-if,v-for。
    • 使用指令时,通常编写在标签的属性上,值可以使用 JS 的表达式。
    • 常用指令
    指令 作用
    v-html 把文本解析为HTML代码
    v-bind 为HTML标签绑定属性值
    v-if v-else v-else-if 条件性的渲染某元素,判定为true时渲染,否则不渲染
    v-show 根据条件展示某元素,区别在于切换的是display属性的值
    v-for 列表渲染,遍历容器的元素或者对象的属性
    v-on 为HTML标签绑定事件
    v-model 在表单元素上创建双向数据绑定

    文本插值
    1.{{}} 插值表达式,不会解析模型中的标签,能够实现内容拼接

    <div id="div">
        <div>uuuu{{msg}}uuuu</div>
    </div>
    
    1. v-text,不会解析模型中的标签
    <div id="div">
        <div v-text="msg">xxxx</div> //xxxx会被覆盖掉
    </div>
    
    1. v-html,会解析模型中的标签
    <div id="div">
        <div v-html="msg">xxxx</div> //xxxx会被覆盖掉
    </div>
    

    属性绑定

    1. v-bind:属性名
    2. :属性名
      注意:不要忘记写:,属性名对应的是html原生的属性名
    <div id="div">
        <a v-bind:href="url">xxxx</a>
        <a :href="url">xxxx</a>
    
        <div :class="cls">xxxx</div>
        <!--支持三元表达式的写法:针对两个样式去做选择-->
        <!--
            isborder是一个模型变量,boolean类型的;会根据这个值来选择使用
            my还是my1作为该元素的class属性值
            -->
        <div :class="isborder?'my':'my1'">xxxx</div>
    </div>
    

    条件渲染
    //真正不渲染
    v-if
    v-else-if
    v-else
    //渲染但是不显示
    v-show

    <div id="div">
        <!--页面进来后,一次性的选择显示或不显示-->
        <div v-if="isShow">xxxx</div> 
        <!--页面进来后,要根据状态频繁切换显示或不显示-->
        <div v-show="isShow">xxxx</div> 
    </div>
    

    列表渲染
    v-for:加在要生成的列表标签上的

    <ul>
        <li v-for="item in items">
            {{item}}    //遍历到的item是普通数据
        </li>
    
        <li v-for="item in items"> 
            {{item.属性名}}   //遍历到的item是一个json对象   
        </li>
    
        <li v-for="(item,index) in items">
            {{item}}:遍历到的元素 -- {{index}}:遍历到的元素的索引   
        </li>
    </ul>
    

    事件绑定

    1. v-on:事件名
    2. @事件名
      注意:这个事件函数要定义在Vue对象的methods中
    <div v-on:click="fun1();"></div>
    <div @click="fun1();"></div>
    

    v-model 详解

    • 双向数据绑定
      更新 data 数据,页面中的数据也会更新
      更新页面数据,data 数据也会更新
    • MVVM模型(Model View ViewModel):是 MVC 模式的改进版
      在前端页面中,JS 对象表示 Model,页面表示 View,两者做到了最大限度的分离
      将 Model 和 View 关联起来的就是 ViewModel,它是桥梁
      ViewModel 负责把 Model 的数据同步到 View 显示出来,还负责把 View 修改的数据同步回 Model

    Vue异步请求-基于axios实现

    1. get请求:注意请求参数传递和响应数据处理
      get请求参数只能拼接在URL后面


      匿名函数
    • 箭头函数
    1. post请求:注意请求参数传递和后台获取数据方式


      ?拼接参数
    字符串传递参数 json对象传递参数

    相关文章

      网友评论

          本文标题:Vue(入门版)

          本文链接:https://www.haomeiwen.com/subject/isbealtx.html