一. Vue简介

1. Vue理解

1.1 特点

JavaScript 框架

简化Dom操作(使用Vue提供的特殊语法,Vue会自动的去操纵使用特殊语法的DOM元素)

响应式数据驱动 (页面是由数据生成的)

渐进式的框架,你可以将Vue作为你应用的一部分嵌入其中

1.2 高级功能

解耦视图和数据

可复用的组件

前端路由技术

状态管理

虚拟DOM

1.3 第一个Vue程序

步骤

  • 导入开发版本的Vue.js

  • 创建Vue实例对象,设置el属性和data属性

  • 使用简洁的模板语法把数据渲染到页面上

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>HelloVue</title>
    <!-- 开发环境版本,包含了有帮助的命令行警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        window.onload = function(){
            const app = new Vue({
                <!-- el类型:String或HTMLElement -->
                el: '#app',<!-- data类型:Object或function -->
                <!-- 注意:组件当中data必须是一个函数 -->
                data: {
                    message: 'Hello Vue!'
                }
            })
        }
    </script>
</head>
<body>
    <div id="app">
        {{ message }}
    </div>
</body>
</html>

el:挂载点

el是用来设置Vue实例挂载(管理)的元素

作用范围:Vue会管理el选项命中的元素及其内部的后代元素

可以使用其他的选择器,但是建议使用ID选择器

可以使用其他的双标签,不能使用HTML和BODY

data:数据对象

Vue中用到的数据定义在data中

data中可以写复杂类型的数据

渲染复杂类型数据时,遵守js的语法即可

<body>
    <div id="app">
        {{ message }}
        <h2>{{ person }}</h2>
        <h2>{{ person.name }}</h2>
        <h3>{{ words}}</h3>
        <h3>{{ words[2] }}</h3>
    </div>
    <script>
        const app = new Vue({
                el: '#app',data: {
                    message: 'Hello Vue!',person:{
                        name:"lak",gender:"女"
                    },words:["GG","TT","YY","MM"]
                }
            })
	</script>
</body>

2. Vue中的MVVM

img

3. Vue声明周期

3.1 Vue生命周期理解

也称为生命周期钩子,即生命周期函数

生命周期图示

img

3.2 总结

初始化阶段

beforeCrete函数,created函数,beforeMount函数,mounted函数

运行状态阶段

beforeUpdade函数,updateed函数

销毁阶段

beforeDestory函数,destoryed函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>HelloVue</title>
    <!-- 开发环境版本,包含了有帮助的命令行警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <!-- 官网提供的 axios 在线地址 -->
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
   <script>
        window.onload = function(){
            const app = new Vue({
                el:"#app",data:{
                    msg:"GG"
                },method:{},//1.生命周期中的第一个函数,该函数在执行时Vue实例仅仅完成了
                //  自身事件的绑定和生命周期函数的初始化工作,Vue实例中还没
                //  有Data,el,methods相关属性
                beforeCreate(){
                    console.log("beforeCreate:" + this.msg);//拿不到该属性
                },//2.生命周期中的第二个函数,该函数在执行时Vue实例已经初始化
                //  化了data属性和methods中相关方法
                created(){
                    console.log("create:" + this.msg);
                },//3.生命周期的第三个函数,该函数在执行时Vue将el中指定作用范围
                //  作为模板编译
                beforeMount(){
                    console.log("beforeMount:" + 
                        document.getElementById("sp").innerText);
                    //beforeMount:{{msg}}
                },//4.生命周期的第四个函数,该函数在执行过程中,已经将数据渲染到
                //  界面中并且已经更新页面
                mounted(){
                    console.log("beforeMount:" + 
                        document.getElementById("sp").innerText);
                    //beforeMount:GG
                },//5.生命周期的第五个函数,该函数是data中数据发生变化时执行的,
                //  此事件执行时仅仅时Vue实例中的data数据变化,而页面中显示的还是
                //  原始数据
                beforeUpdate(){},//6.生命周期的第六个函数,此事件执行时Vue实例中的data数据
                //变化,页面中的数据也相应发生了变化
                update(){},//7
                beforeDestory(){},//8
                destoryed(){},})
            
        }
    </script>
</head>
<body>
    <div id="app" >
        <span id="sp">{{msg}}</span>
    </div>
</body>
</html>

相关文章

https://segmentfault.com/a/1190000022018995 https://www....
ES6 (ECMAScript 6)中的模块是一个包含 JavaScript 代码的...
from https://mp.weixin.qq.com/s/-rc1lYYlsfx-wR4mQmIIQQ V...
D:\Temp&gt;npm init vite@latest vue3study --temp...
文章浏览阅读1.2k次。最近自己从零撸起的甘特图组件需要子组...
文章浏览阅读3.3k次,点赞3次,收藏16次。静默打印是什么?简...