[vue] 1-vue开篇

为什么学习vue

每个人学习Vue的目的是各不相同的。

可能你的公司正要将原有的项目使用Vue进行重构。

也可能是你的公司新项目决定使用Vue的技术栈。

当然,如果你现在正在换工作,你会发现招聘前端的需求中,10个有8个都对Vue有或多或少的要求。

当然,作为学习者我们知道Vuejs目前非常火,可以说是前端必备的一个技能。

前端框架的三大马车

angular 谷歌 MVC(设计典范) M(数据) V(视图) C(控制器) 双向数据绑定

react facebook 视图层的框架view 虚拟dom

vue 尤雨溪 双向数据绑定+虚拟dom

再次回到问题,为什么要学习vue

1、运行效率高 采用虚拟dom 减少了dom的操作,也就减少了性能的消耗。

2、开发效率高 采用了组件化开发 。

3、将开发者的精力从操作dom中解放出来,转移到处理数据上。

上面提到了dom操作,下面的一个小案例可以体现出操作dom在性能上的差异。

        console.time('run')
        let init = 0
        var content = 0
        // 需求,在页面上显示i的值
            // 方式一:我们在循环体里面给div直接赋值
        for(var i = 0; i <= 100000; i++) {
            content = document.getElementById('content');
            content.innerText = i;
        }
        // 这段代码所运行的时间
        console.timeEnd('run')  //run: 76.166015625 ms
        // 上面的代码表示,在每一次循环当中给content.innerText赋值一次,循环了十万次,也就是说对dom操作了十万次。


        console.time('run')
        let init = 0
        var content = 0
        // 需求,在页面上显示i的值
            // 方式二:不在循环内操作dom,在循环结束后只进行一次赋值
        for(var i = 0; i <= 100000; i++) {
            content = document.getElementById('content');
        }
        content.innerText = i;
        // 这段代码所运行的时间
        console.timeEnd('run')  //run: 15.89599609375 ms
        //在这段代码中,只在最后的循环中进行了一次赋值,所以对比两段代码的运行时间,很明显的可以看到操作dom的次数对程序运行的时间有很大影响。

在方式二中,i 在赋值给content.innerText之前,它都是存在内存中的,存在内存中的数据,它的消耗是远远小于修改dom的。

上面只是关于vue在操作dom方面的核心—> 减少dom操作

​ 那么它是如何做到减少dom操作的呢?

​ 使用虚拟dom

​ 什么是虚拟dom,长什么样?

虚拟dom其实也是一个对象,他的原型大概是这个样子,说白了就是用一个js变量来描述真实dom

        let obj = {
            tag: 'div',			//标签名
            className: 'test',		//类名
            id: 'div1',		// id
            children: [   //如果有子标签在这里,以数组的形式来存储一个或多个子标签,每一个子标签是一个对象
                {
                    tag: 'p',
                    text: '你好'
                },
                {
                    tag: 'span',
                    text: '呵呵'
                }
            ]
        }

渲染成真实dom

        <div id="div1" className="test">
            <p>你好</p>
            <span>呵呵</span>
        </div>

vue减少dom操作的原理就是在虚拟dom中进行操作数据(虚拟dom是存在内存中的),操作完数据,再渲染成真实dom,这样就只对dom操作了一次,减少了性能的消耗。

再继续回到刚才的问题,为什么要学习vue,从工作来说,市场上vue的需求越来越多,从技术层面来说,他能大大提高我们项目的性能,当然还有很多为什么,但是这就需要以后的学习中体会了。

认识vue

Vue (读音 /vjuː/,类似于 view)

Vue是一个渐进式的框架,什么是渐进式的呢?

  • 渐进式意味着你可以将Vue作为你应用的一部分嵌入其中,带来更丰富的交互体验。

  • 或者如果你希望将更多的业务逻辑使用Vue实现,那么Vue的核心库以及其生态系统。

  • Vue有很多特点和Web开发中常见的高级功能

    • 解耦视图和数据
    • 可复用的组件
    • 前端路由技术
    • 状态管理
    • 虚拟DOM

vue.js安装

vue的实例化

  • 1、下载引入

  • 2、找一个dom元素,这个dom需要被vue控制

  • 3、再js中实例化vue

安装vue的方式:

​ 方式一:直接CDN引入你可以选择引入开发环境版本还是生产环境版本(引入开发版本)

<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<!-- 生产环境版本,优化了尺寸和速度 --> //压缩过
<script src="https://cdn.jsdelivr.net/npm/vue"></script>

​ 方式二:下载和引入

开发环境 https://vuejs.org/js/vue.js
生产环境 https://vuejs.org/js/vue.min.js

方式三:npm安装

​ 通过webpack和CLI的使用,使用该方式。

Vue的第一个程序

    <div id="app">
        <!-- 这里的双大括号的语法是Vue里面独有的,叫做mustache插值法 -->
        <!-- 这个name当前是data中的name,data中的数据可以直接通过mustache插值法进行渲染,{{双大括号的形式}},前提是经过el的绑定。 -->
        hell {{name}}
    </div>
    <script>
        // 创建一个Vue的实例,它需要传入一个对象
            // 1、对象里面的el,表示要挂载的元素,挂载的元素和该元素的子节点都会被Vue实例所处理
            // 2、对象里面的data,这个属性通常存储一些数据, 这些数据可以是我们直接定义出来的,比如像上面这样
        const app = new Vue({
            el: '#app',
            data: {
                name: 'Vue'
            }
        })
    </script>

在这里插入图片描述

上面这段代码的执行流程是

  • 代码执行到:11行~15行 页面显示:

    • hell {{name}}
  • 执行第20行代码创建Vue实例,并且对原HTML进行解析和修改。

  • 并且,目前的代码是可以做到响应式的(修改name的值,页面也会跟着修改)

如果是原生应该怎么做?

    // 原生js的做法(编程范式: 命令式编程)
    // 1.创建div元素,设置id属性

    // 2.定义一个变量叫message

    // 3.将message变量放在前面的div元素中显示

    // 4.修改message的数据: 今天天气不错!

    // 5.将修改后的数据再次替换到div元素

两种对比,很明显Vue更方便一些,我们只需要把dom交给他管理,剩下的繁琐工作它都可以帮我们搞定。

注意:一个js文件,可以实例化多个Vue实例,每一个实例都绑定自己的dom元素,但是他们的数据都不通用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue Seamless Scroll是一个Vue的无缝滚动组件,可以用来创建平滑的滚动效果。使用Vue Seamless Scroll需要以下步骤: 1. 首先,需要引入Vue Seamless Scroll插件。在Vue2中,可以使用以下代码进行引入: ```javascript import vueSeamlessScroll from 'vue-seamless-scroll' ``` 在Vue3中,可以使用以下代码进行引入: ```javascript import { Vue3SeamlessScroll } from "vue3-seamless-scroll";``` 2. 注册Vue Seamless Scroll组件。在Vue2中,可以在组件的`components`选项中注册Vue Seamless Scroll: ```javascript components: { vueSeamlessScroll } ``` 在Vue3中,可以在组件的`components`选项中注册Vue Seamless Scroll: ```javascript components: { Vue3SeamlessScroll } ``` 3. 在需要使用无缝滚动效果的地方添加Vue Seamless Scroll组件标签。在Vue2中,可以使用`<vue-seamless-scroll></vue-seamless-scroll>`标签进行包裹: ```html <vue-seamless-scroll></vue-seamless-scroll> ``` 在Vue3中,可以使用`<vue3-seamless-scroll></vue3-seamless-scroll>`标签进行包裹: ```html <vue3-seamless-scroll></vue3-seamless-scroll> ``` 你还可以参考Vue Seamless Scroll插件的在线演示文档,了解更多关于它的用法和示例。 这就是使用Vue Seamless Scroll的方法。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vue-seamless-scroll插件,使用详细( vue-seamless-scroll 无缝滚动)](https://blog.csdn.net/weixin_65793170/article/details/129388795)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [vue的无缝滚动组件vue-seamless-scroll实例](https://download.csdn.net/download/weixin_38674415/12766875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值