web学习笔记(五十四)Vue

目录

1.初始Vue

1.1 什么是Vue

1.2 Vue的特点

1.3 引入Vue

1.4 使用Vue

1.5 vue2和vue3的区别

2. 数据绑定的方法

2.1 Mustache(双大括号插值法)

2.2 v-text

2.3 v-html

3. 列表渲染(循环)


1.初始Vue

1.1 什么是Vue

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

1.2 Vue的特点

  1. Vue 上手简单易用。
  2. Vue 具有灵活强大的生态系统。
  3. Vue 比较高效,采用虚拟dom(使用js对象描述的dom节点)。
      // 虚拟dom,因为真实的dom里面包含的方法和属性太多了,多次加载会耗费大量内存,
      //而使用对象来模拟dom节点就可只加载我们需要的方法和属性,会节约大量内存
            let div = {
                tagname: 'div',
                attr: {
                    id: 'box',
                    class: 'a'
                },
                innerHTML: '好好学习,天天向上'
            }
  4. Vue 采用diff算法(差异算法或对比算法):通过比较新旧组件树或虚拟DOM树,框架能够找出最小更新集合并减少不必要的DOM操作,从而提高应用的性能。

1.3 引入Vue

引入vue可以选择引入在线文件,也可以将文件中的内容全部复制到本地的.js文件中,然后引用该.js文件。

    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

1.4 使用Vue

使用vue需要创建Vue实例 参数为options(选项)表示一个对象。

 let vm = new Vue({
            // element 元素节点 表示当前vue实例所作用的元素节点
            el: "#app",
            // 存放当前数据的集合
            data: {
                msg: 'hello world vue.js',
                title: '初始vue'
            }
        });

1.5 vue2和vue3的区别

  1. vue2用的是选项式API: 通过配置的方式写业务逻辑,声明响应式数据。
  2. vue3用的是 组合式API:通过不同的API进行任意组合搭配,实现逻辑的连贯性。比如:数据和方法可以放在一起,查找和阅读代码都非常方便。

2. 数据绑定的方法

2.1 Mustache(双大括号插值法)

  • 双大括号会将数据解释为普通文本,而非 HTML 代码。而且这个方法还有插值闪烁的问题,可以在标签内写入v-cloak,再设置v-cloak的样式为display: none;可以解决这个问题。
  • Mustache(双大括号插值法)也可以绑定一个js表达式。在使用js表达式时,每个绑定的值都只能是单个表达式,语句、及流程控制、函数等是不会生 效的,
 <style>
        [v-cloak] {
            display: none;
        }
    </style>
<body>
    <div id="app">
        <!-- 双大括号中只能写js表达式 -->
        <h1 v-cloak>{{msg.split('')}}</h1>
        <h2 v-cloak>{{sex?'男':'女'}}</h2>
    </div>
    <script src="./vue.js"></script>
    <script>
        let vm = new Vue({
            el: '#app',
            data: {
                msg: '好好学习 天天向上!!!',
                sex: true
            }
        })
        console.log(vm);
    </script>
</body>

2.2 v-text

 v-text指令用来渲染内容 类似于原生js中的innerText。

<body>
    <div id="app">
        <!-- v-text指令用来渲染内容 类似于原生js中的innerText -->
        <h2 v-text="title"></h2>
    </div>
    <!-- 插值闪烁: -->
    <script src="./vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
                msg:'Vue基础指令',
                title:'请认真学习',
                html:"<a href='https://cn.vuejs.org/guide/introduction.html'>vue官网</a>"
            }
        })
    </script>
</body>

2.3 v-html

v-html指令用来渲染内容 类似于原生js中的innerHtml。

<body>
    <div id="app">
        <!--v-html指令用来渲染内容 类似于原生js中的innerHtml  -->
        <h3 v-html="html"></h3>
    </div>
    <!-- 插值闪烁: -->
    <script src="./vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
                msg:'Vue基础指令',
                title:'请认真学习',
                html:"<a href='https://cn.vuejs.org/guide/introduction.html'>vue官网</a>"
            }
        })
    </script>
</body>

3. 列表渲染(循环)

 在vue中使用v-for指令可以进行数组格式数据渲染,v-for列表循环时必须要绑定一个唯一标识key。

  格式:   <li v-for="(item,index) in list">{{item}}---{{index}}</li>

 v-for  用于列表循环
 item  表示遍历得到的每一项
 index  表示遍历得到的每一项所对应的索引
  list    表示要循环的数组名称
<body>
    <div id="app">
        <ol>
            <!-- v-for 用于列表循环
                 item  表示遍历得到的每一项
                 index 表示遍历得到的每一项所对应的索引
                 list  表示要循环的数组名称-->
            <li v-for="(item,index) in list" v-bind:key="index">{{item}}---{{index}}</li>
        </ol>
        <hr>
        </hr>
        <ul>
            <li v-for="(item,index) in userList" v-bind:key="index">{{item.name}}---{{item.age}}---{{item.sex}}</li>
        </ul>
        <!-- 遍历数字 -->
      <ol>
        <li v-for="(item,index) in num" v-bind:key="index">{{item}}---{{index}}</li>
      </ol>
    </div>
    <script src="./vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
                list: ['张三', '李四', '王五', '赵六', '关四'],
                userList: [{
                        name: "张11",
                        age: 18,
                        sex: '男'
                    },

                    {
                        name: "张22",
                        age: 17,
                        sex: '女'
                    },
                    {
                        name: "张33",
                        age: 16,
                        sex: '男'
                    }


                ],
                num: 10
            }
        })
    </script>
</body>

 为什么在写v-for时需要绑定key?

当 Vue.js 用 v-for 正在更新已渲染过的元素列表时, 采用diff算法(差异算法或对比算法)即通过比较新旧组件树或虚拟DOM树,框架能够找出最小更新集合并减少不必要的DOM操作,从而提高应用的性能。而key的作用就是明确告诉系统此循环中第几个节点被改变,从而减少对比次数,达到高效的更新虚拟 DOM的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值