vue初学-- day1

192 阅读5分钟

01-(了解)Vuejs课程介绍P2 - 01:26

Xmind思维导图制作工具。

一、vue-mvvm架构。

二、基本语法

三、组件化开发

四、vue-cli脚手工具:基于webpack,cli2、cli3

五、vue-router前端路由

六、vuex-状态管理

七、网络封装AXIOS(其中一个封装框架)

八、项目实战。

九、项目部署。

十、远离相关(响应式远-双向绑定)

02-(理解)Vuejs的认识和特点介绍P3 - 00:29

1、渐进式:将vue 作为一部分嵌套进去,一部分是由vue,一部分是其他的。

2、可复用组件,前端路由技术,状态管理,虚拟dom底层属性。

3、es6语法,用工具解析成es5,所以浏览器识别的还是es5语法。

03-(掌握)vuejs安装方式P4 - 00:06

1、方式一:直接CDN引入(选择开发环境版本或者生产环境版本引入

2、方式二:直接下载和引入

3、方式三:npm安装-后期学到

vscode编辑器 后期推荐使用 插件比较多,微软的产品。

webstorm

04-(掌握)HelloVuejs的初体验P5 - 00:11

<body>
<!--//div交给了vue实例管理-->
<div id="app">
    <h2>{{message}}</h2>
    <h2>{{name}}</h2>
</div>
<!--使用vue-->
<script src="../js/vue.js"></script>
<script>
//let (定义变量)const(定义常量)
// let name ="cyy";
// name="chang"可以重新赋值
// const不能重新赋值,一旦重新赋值就会报错
//创建vue实例 ,传入一个对象 有个参数 用于挂载我们的元素ID=APP,让我们的vue管理这个div
//vue编程:声明式编程(当我的实例去管理这个div的时候,你只需要告诉这个div显示什么东西就是了)
    const app= new Vue({//APP不需要改她了
        el:"#app",//这个属性的作用:用于挂载要管理的元素。
        data:{//定义一些数据
          message:"壮壮你好呀~~~~",
          name:"hello world"
        }
    })

//js做法:编程范式:命令式编程

05-(掌握)Vue列表的展示P6 - 00:53

<ul>
    <!--foods依次取出来放到变量item,每次item值是不一样的-->
    <li v-for="item in foods">{{item}}</li>
</ul>

const app =new Vue({
    el:"#app",
    data:{
        message:"你好啊,",
        foods:['麻婆豆腐','宫保鸡丁','炒土豆丝','酸菜面','饺子','麻辣米线'],//数组
    }
})

06-(掌握)小案例-计数器P7 - 00:01

methods 定义方法, v-on监听某个事件简写

点击事件 v-on:click ===@click

<div id="app">
    <h2>当前计数:{{counter}}</h2>
    <!--监听v-on 监听了点击事件-->
    <button v-on:click="counter++">+</button>
    <button v-on:click="counter--">-</button>

    <button v-on:click="add">+</button>
    <button v-on:click="sub">-</button>

</div>

const app =new Vue({
    el:"#app",//挂载
    data:{//定义数据
        counter:0,
    },
    methods:{//定义方法
        add:function () {//add是个函数
            console.log("add被执行");
            this.counter++  //当前对象拿变量 this
        },
        sub:function () {
            console.log("sub被执行");
            this.counter--
        }
    }
})



07-(理解)Vue的mvvmP8 - 00:18

model view 上的事件需要改变需要view model 通信桥梁,

view就是dom,

model相当于是数据,js,定义的数据或者网络请求的数据,

view Model---就是vue实例,帮助我们将data里的数据绑定到view里,也就是将model里面以及js里面定义数据 绑定到真实的dom上面,view永远展示的是model里面最新的数据,

第二个事情就是当我们view上面有一些事件,或者用户操作的时候,通过vue实例定义的一些指令,把我们事件响应相关的东西 绑定到model上面,就是因为view model的监听,来回调我们定义的js对象。

const obj={
    counter:0,
    message:"你好啊 hello"
}//也可以这么写 proxy代理
 const app =new Vue({
     el:"#app",//挂载
     // data:{//定义数据////-----model
     //     counter:0,
     // },
     data:obj,
     methods:{//定义方法
         add:function () {//add是个函数
             console.log("add被执行");
             this.counter++  //当前对象拿变量 this
         },
         sub:function () {
             console.log("sub被执行");
             this.counter--
         }
     }
 })



08-(理解)Vue的options选项P9 - 00:09

创建vue 实例的时候 传入了一个对象option。对象里面有很多属性

目前可掌握少部分:

1、el:类型 字符串string或者htm(document.querySelector(),)

作用:决定之后vue实例会管理哪一个DOM

2、data:类型 对象objec或者函数function(组件中的data必须是一个函数)

作用:vue实例对应的数据对象 一般放在这里

3、methods:类型{[key:string]:function} 定义的一般都是一大堆的函数,逗号分隔

作用:定义属于vue的一些方法,可以再其他地方调用,也可以在指令中使用。

开发中什么时候称之为方法,什么时候称之为函数???

答:方法叫method,实例中定义的一般是方法

函数function,直接在script中写的一般

09-(理解)什么是Vue的生命周期P10 - 00:31

什么叫生命周期:一个事物从诞生到消亡的整个过程,

vue的生命周期:只要new vue创建了,就会做一系列的事情都在源码中做的事情,做这些事情的时候 告诉你 做到哪一步了,就会 执行哪个内部函数

10-(理解)Vue的生命周期函数有哪些P11 - 00:07

生命周期也叫钩子函数hook。传过来函数通过钩子来回调它

let app = new Vue({
    el:'#app',
    data:{
        msg:"IT程序员的日常"
    },
    methods:{
        say:function () {
            console.log("IT程序员的日常");
        }
    },
    beforeCreate:function () {
        /*执行beforeCreate的时候,表示Vue刚刚出生,还没有任何内容,data/methods都没有初始化*/
        //console.log(this.msg);
        //this.say();
        //console.log(this.say);
    },
    created:function () {
        /*执行created的时候,表示Vue实例已经初始化好了部分内容,data/methods
        * 想在Vue实例中最早访问到data/methods,只有在这个方法才能访问,
        * 当我们把某一个组件 或者实例创建之后 就会在这里面做一些网络请求,
            将请求到的数据放到data里面,之后将data数据展示到dom中
        */
        //console.log(this.msg);
        //this.say();
        // console.log(this.say);
    },
    beforeMount:function () {
        /*执行beforeMount,表示已经根据数据编译好了模板,但是还没有渲染到界面上*/
        // console.log(document.querySelector("p").innerText);
        // console.log(document.querySelector("p").innerHTML);
    },
    mounted:function () {
        /*执行mounted,表示已经根据数据编译好了模板,已经将模板有渲染到界面上,此时可以对界面进行其他操作了*/
        console.log(document.querySelector("p").innerText);
        console.log(document.querySelector("p").innerHTML);
    },
    beforeUpdate:function(){
        /*主要data中的数据发生了变化就会执行
        * 执行beforeUpdate时候,data的数据已经是最新的了,但是没有更新界面上的数据
        *
        * */
        // console.log(this.msg);
        // console.log(document.querySelector("p").innerText);
        // console.log(document.querySelector("p").innerHTML);
    },
    updated:function () {
        /*主要data中的数据发生了变化就会执行
       * 执行updated时候,data的数据已经是最新的了,界面上的数据也已经更新
       *
       * */
        console.log(this.msg);
        console.log(document.querySelector("p").innerText);
        console.log(document.querySelector("p").innerHTML);
    },
    beforeDestroy:function(){
        /*执行beforeDestroy的时候,表示Vue实例即将销毁,但是还未销毁,实例中的数据等都可以使用
        * 最后能使用Vue实例的地址
        * */
    },
    destroyed:function () {
        /*
        * 执行destroyed的时候,表示vue实例完全销毁,实例中的任何内容都不能被使用了
        * */
    }

})