vue day1 学习总结

总结

vue day1

1.3 Nodejs&Npm安装

node自带npm(安装了node也就有npm了)

1.3.1 安装NodeJs

  1. 官方网站查找下载 https://nodejs.org/en/download/
  2. 下载后直接安装(傻瓜式,不解释)

[外链图片转存失败(img-5YoDAjDm-1566498527476)(https://note.youdao.com/yws/public/resource/cf9a910bb3b4ab2a54af029e898bd6ad/88B4188AF8A842E8AAACBAE37B68D97A?ynotemdtimestamp=1566492542548)]

  1. 安装后测试
    • 确定环境变量中是否有nodejs的配置
    • 输入命令 node -v :查看node的版本
    • 输入命令 npm -v : 查看npm的版本

[外链图片转存失败(img-cV72wyvj-1566498527478)(https://note.youdao.com/yws/public/resource/cf9a910bb3b4ab2a54af029e898bd6ad/039D9C2783B04B70B5851F75A9CDF5E5?ynotemdtimestamp=1566492542548)]

  1. 输入命令 npm install npm@latest -g 升级npm

[外链图片转存失败(img-4JlN0OVY-1566498527479)(https://note.youdao.com/yws/public/resource/cf9a910bb3b4ab2a54af029e898bd6ad/C5D59856B0CF4084B087FF1484AB8D79?ynotemdtimestamp=1566492542548)]

1.3.2 idea中的npm安装

image

  • 安装后重启idea
  • 在idea下方的Teminal即可输入命令

[外链图片转存失败(img-TyhmlMxk-1566498527481)(https://note.youdao.com/yws/public/resource/cf9a910bb3b4ab2a54af029e898bd6ad/CEBAA5317F004E8782DF01FB34A05691?ynotemdtimestamp=1566492542548)]

1.3.3 npm的使用

maven中我们有pom.xml,而在npm中我们有package.json

①.创建普通web项目

image

②.命令学习
  1. 初始化命令
    • npm init ->初始化,会在项目中创建一个package.json文件 (相当于建了一个maven的pom.xml文件)
    • npm init -y ->初始化(跳转确定信息)

[外链图片转存失败(img-fVLHxzbH-1566498527482)(https://note.youdao.com/yws/public/resource/cf9a910bb3b4ab2a54af029e898bd6ad/5C518D1910FD4C578404C5D0002EA5B3?ynotemdtimestamp=1566492542548)]

  1. 安装命令
    • 全局安装(所有项目都能用)
      • npm install -g vue
      • npm -g root 安装路径
    • 局部安装(安装项目可以使用)
      • npm install/i vueimage
  2. 其它命令
  • 查看某个模块:npm list vue
  • 列表模块(查看所有模块):npm ls
  • 卸载模块:npm uninstall vue
  • 更新模块:npm update vue
  • 运行工程:npm run dev/test/online -> 平时运行使用(需要配置,现在无法执行)
  • 编译工程:npm run build -> 上线时需要进行编译(编译完扔到服务器中运行)

二.ECMAScript6

​ 1 es6的认识

​ 概念:是浏览器的脚本语言,可以狭义的理解为 javascript 的规范。Es6也是现在最新的 js 语法。

2 Es6的常见语法。

(1)let && const

​ let :

​ 概念:用来申明变量,他有点类似于 var(但是他所声明的变量只是在let命令所在代码块的区域有效)。 1 不能重复声明 2 没有变量提升;

//  var  测试结果可以在外部获取
for (var i= 0;i<10;i++) {
            console.debug(i)
        }
        console.debug(i)
   console.debug("------------------------------------")
   
   
 // let 测试结果不能再循环外部获取
 
  for (let j=0;j<10;j++){
            console.debug(j)
        }
        /* 在作用域的外边 是不能访问的  */
         console.debug(j)
   

const 声明 常量

var  b="1234464646";
	 b="kkk"
// 测试结果 b 原有的值 会被修改

const  v = "abac ";
        v="1245";
//  原有的值是不会被修改

解构表达式

​ Es6 可以按照一定模式,从数组和对象中提取值,对变量进行赋值,称为解构表达式。

// 以前常用的变量赋值
let a = "张三"
let b = "李四"

//  使用解构表达式
let [a,b]=["哈哈", "呵呵" ]
console.debug(a,b);
// 数组解构
let arr = ["哪吒","金吒","木吒"];
let [a,b,c] = arr;
console.debug(a,b,c);
  /* 对象 解构的表达式 */
let person={name:"娜扎",age:12}
let {name,age} =person
console.debug(name,age)

函数箭头

// 原生函数
 /* 定义普通函数  */
        function say() {
                console.debug("定义一个普通的函数")
        }
        say();
        
        /* 第一个普通函数 传入一个name  的参数  */
        function sayy(name) {
            console.debug("这是一个有参的函数 "+name)
        }
        sayy("boss");
//  函数箭头
  /* 定义一个无参的箭头函数  */
        var  say1=()=> {
            console.debug("定义一个箭头函数 ")
        }
        say1();
    /*  定义一个带参数的箭头函数  */
        var say11=(name)=>{
            console.debug("这是一个带参数的箭头函数"+name)
        }
        say11("bigboss")

// 对象中添加函数
 var ass={
            /* 普通方法在对象中添加相应的参数  */
            big:function (name) {
                console.debug("普通写法在对象中添加相应的参数"+name)
            },
            /* 使用箭头函数在对象中添加相应的参数  */
            big1:(name)=>{
                console.debug("使用箭头函数在对象添加相应的函数"+name)
        },
        big2(name){
                console.debug("最简写的方式")
        }
        }
        ass.big("boss")
// 解构 与 箭头函数混合使用
 /* 定义一个常量 const */
        const employee={
            name:"bosssssss",
            age:20
        }
         /* 解构与箭头函数的 混合用法  */
        var hai=({age})=>{
            console.debug("解构与箭头函数混合用法"+ age)
        }
        hai(employee)

Promise

​ 简单的说,Promise 就是一个容器,里面保存着某个未来才会结束的事件

  / *       resolve : 成功之后执行
        *       reject : 失败之后执行
        * */
        var promise  =new Promise(function (resolve,reject) {
            resolve("成功进来了");
            reject("失败了")
        })
        promise.then(function (msg) {
            console.debug(msg)
        }).catch(function (err) {
            console.debug(err)
        })

模块化管理

​ 举列子来说,有个A.js 和 b.js 。 A.js 里面有个方法,如下( A图 )。

​ 如果 b. js 想要调用 ( B 图) 中 js。 那么( A 图 ) 中 必选要有 export util

​ 导出,而在 b.js 中必须要 import util from ‘b.js’ 有导入 如 (B 图)

A( 图 )

const util={
 add(a,b){
    return a+b;
 }
}
// 导出
export util



/* 模块化导出的简写模式  */
/*export default{
    add(a,b){
        return a+b;
    }
}*/



/* 可以导入多个数据  比如数组 和 对象 */
var  name="kkk"
var  age=20
export {name,age};

B( 图 )

// 模块导入
import util from  'b.js'
util.sun(4,5)

/* 批量导入 */
import {name,age} from 'b.js'
console.debug(name,age)

最后引入html中

!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 模块化 在有些浏览器中是不能访问的 -->
    <script src="b.js"></script>
</head>
<body>

</body>
</html>

vue入门

特点;

​ 1 轻量级;vue.js 体非常小,并且不依赖其他的基础库

​ 2 数据绑定: 对于一些富交互、状态机类似的前端UI界面,数据绑定非常简单、方便。

​ 3 指令;内置指令统一为(v—*),也可以自定义指令,通过对应表达值的变化就可以修改对应的DOM。

​ 4 插件化;Vue.js核心不包含Router、AJAX、表单验证等功能,但是可以非常方便地根据需要加载对应插件。

​ 5 组件化 :组件可以扩展 HTML 元素,封装可重用的代码。允许我们使用小型、自包含和通常可复用的组件构建大型应用

一 ,el,data && method

使用vue的三步

1 引入 vue.js 2 准备被挂载的容器 3 js 完成挂载

El
	 el :挂载
             挂载可以使用id , class, 以及  标签
               但是如果有相同的class 和 标签   就会把原有的值个覆盖掉,
               所以一般使用 id 因为 id 唯一且不相同
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    //    1 引入vue 的js
    <script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>

<!-- 创建容器-->
<div  id="app">
    {{msg}}
</div>

<!-- 3 js 完成挂载  也就是说让他与容器发生关系  -->
<script >
    new Vue({
        /*
            el :挂载
                 挂载可以使用id , class, 以及  标签
                   但是如果有相同的class 和 标签   就会把原有的值个覆盖掉,
                   所以一般使用 id 因为 id 唯一且不相同
        * */
        el:"#app",
        data:{
            msg:"好嗨哟"
        }
    })
</script>
</body>
</html>
data
  • data是咱们的数据
  • 获取数据有两种方式
    • 直接在js中获取/设计
    • 在表达式中来获取
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    //  1 引入 vue的js 文件
    <script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>

//  2 创建容器
<div id="app">
    {{msg}}<br/>
    {{age}}<br/>
    {{hobbys}}<br/>
    {{dept}}<br/>
    {{dept.id}}
</div>


// 3 与容器发生关系
<script >
    new Vue({
        el:"#app",
        /* data 表示这个数据可以在 容器中取获取
        *   可以是对象, 数组,字段 等......
        * */
        data:{
            msg:"唉",
            age:20,
            hobbys:["yy","oo","xx"],
            dept:{
                id:20,
                name:"boss",
                sex:true
            }
        }
    })

</script>
</body>
</html>

methods

  • 指的是咱们的方法元素

  • 调用方法的位置

    • 在js中直接调用
    • 可以用表达式调用
  • 可以直接使用this获取到data中的数据

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        // 1 引入 vue.js
        <script src="../node_modules/vue/dist/vue.js"></script>
    </head>
    <body>
    <!--表达式中可以直接调用里面的方法 -->
    // 2 创建容器
    <div id="app">
        {{age}}
    </div>
        
    //  3 与容器发生关系
    <script >
        var  v = new  Vue({
            el:"#app",
            data:{
                age:20
            },
            /* 会把原有的值 覆盖掉 应为用了this 指向了data中 age */
            methods:{
                say(){
                    this.age=21
                }
            }
        })
        v.say();
    </script>
    </body>
    </html>
    

    vue的生命周期

    ​ 从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程,我们称这是Vue的生命周期。通俗说就是Vue实例从创建到销毁的过程,就是生命周期。

    [外链图片转存失败(img-EXHccwo1-1566498527484)(https://note.youdao.com/yws/public/resource/cf9a910bb3b4ab2a54af029e898bd6ad/9DB7E3A5F50049538F8B8E7D8D4ADFBC?ynotemdtimestamp=1566492542548)]

钩子
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<!-- 引入vue的js 文件  2 创建容器   3 与容器发生关系 -->
<div id="app">
    {{msg}}
</div>
<script>
    new Vue({
        el:"#app",
        data:{
            msg:"ooo"
        },
        /* vue 内部加载完成之后 created */
        created(){
            alert(11)
            this.msg="kkkk"
        },
        /*挂载完成之后执行  也就是与容器发生关系后执行 */
        mounted(){
                alert(555)
            this.msg="ppp"
        }
    })
</script>

</body>
</html>
mvvm

​ 双向绑定 改变一方 ,另一方也会改变 ( 知道意思,但是理解还未透彻 )

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<!-- 引入vue .js 的包   创建容器    与容器发生关系 -->
<div id="app">
    {{msg}}<br/>
    <!-- 双向绑定  改变一方 ,另一方也会改变
         v-model: 这是一个指令
     -->
    用户名<input  type="text" v-model="msg">
</div>

<script>
    new Vue({
        el:"#app",
        data:{
            msg:"这是一个值试试"
        }
    })
</script>

</body>
</html>

vue 的表达式

  • 可以使用四则运算符
  • 可以使用三目运算符
  • 字符串,对象,数组都可以直接操作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<!--引入vue.js   创建容器  与容器发生关系 -->
<div id="app">
    <!-- vue的表达式和js 非常相似 -->
    {{msg}},{{4+4}}<br/>
    {{num+num2}}
    <!-- 还可以做三木运算  重点注意 三木运算-->
    {{sex?"男":"nv"}}

</div>
<script>
    new Vue({
        el:"#app",
        data:{
            msg:"这是一个值",
            num:4,
            num2:8,
            sex:true
        }
    })
</script>

</body>
</html>

vue 的重要指令

指令名称指令作用备注
v-html显示与解析HTML代码
v-text原封不动的展示
v-for遍历与循环功能遍历数字,字符串,对象,数组
v-bind绑定属性简单形式 :属性名=“值”
v-model双向绑定只支持input,select,textarea
v-show显示与隐藏隐藏只是样式:style=“display=none”
v-if判断v-if/v-else-if/v-else
v-on绑定事件简写 @事件名=方法名()
1 v-html && v-text

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div>
    <div id="app">
        <!-- html 不会加载数据标签 -->
        <div v-html="msg"></div>
        <!-- text 则会加载数据标签  -->
        <div v-text="msg"></div>
    </div>
    <script >
        new Vue({
            el:"#app",
            data:{
                msg:"<h1>  这是一个数据,</h1> "
            }
        })
    </script>
</div>
</body>
</html>
运行结果

[外链图片转存失败(img-ybspMWaE-1566498527485)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\1566498096393.png)]

2 v-for 指令

  • 遍历咱们的数据(数字,字符串,对象,集合)

  • 数字就是普通的循环 for(var i=1;i<=数字;i++)

  • 字符串是拿到每一个字母

  • 对象循环

    <span v-for="(v,k,i) in 对象"></span>
    
    • v:代表对象的属性值
    • k:代表对象的属性名
    • i:代表索引
  • 数组循环

    <span v-for="(v,i) in 数组"></span>
    
    • v:代表对象的属性值

    • i:代表索引

      代码实现
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <script src="../node_modules/vue/dist/vue.js"></script>
      </head>
      <body>
      <div id="app">
          <!--
          item:是每次遍历的值
          index : 是下标 也就是 位置
          -->
          <ur>
              <li v-for="(item,index) in hobbys"> {{item}}-{{index}}</li>
          </ur>
          <!-- 循环对象
              var : 代表是你遍历的值
              name ;是遍历的属性名
              index :是位置 感觉和 索引  差不多
           -->
          <span v-for="(val,name,index) in dept">{{name}}:{{val}}</span><br/>
          <!-- 循环字符串 -->
          <span v-for="v in msg" >{{v}}</span><br/>
          <!--循环 数组 -->
          <span v-for="v in hobbys">{{v}}</span>
      </div>
      <script >
          new Vue({
              el:"#app",
              data:{
                  msg:"这个v怎么来的",
                  hobbys:["这","是","一","个","数","组"],
                  dept:{
                      name:"boss",
                      age:20,
                      sex:true
                  }
              }
          })
      </script>
      
      </body>
      </html>
      
v-bind指令的使用
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
    <!-- 普通的方式引入 -->
   <!-- <img v-bind:src="imgss" />-->
    <!-- 把整个对象的属性全部绑定过来   -->
   <!-- <img v-bind="dept"/>-->
    <!-- 简写的方法 -->
    <img :src="imgss" />
</div>

<script>
    new Vue({
        el:"#app",
        data:{
            msg:"这是一个值",
            imgss:"../imgs/油画.jpg",
            dept:{
                src:"../imgs/油画.jpg",
                width:1000,
                higth:1000
            }
        }
    })
</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值