Vue.js

一、前置知识

ES6的目标是使JavaScript语言可以适应更复杂的应用,实现代码库之间的共享。

flex思维导图

第一个vue实列

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="vue.js"></script>
</head>

<body>
    <div id="app">
        <p>{{msg}}</p>
        <p> {{name}},今年 {{age}}岁 </p>
    </div>

    <script>
        var vm = new Vue(   //创建一个vue实例vm
            {
                el: '#app',//唯一根节点/标签
                      
                data: {
                    msg:'Hello!',
                    name: "Alice",
                    age: 18
                }            
            }
        );

    </script>
</body>

</html>

 二、Vue的基础语法

data数据对象

var app = new Vue({
            el: "#app",
            // data写成对象形式
            // data: {
            //     content: "Mustache表达式通过data为对象获取content的值"
            // }
            //data写成普通函数形式(ES5), 返回一个对象
            // data: function () {
            //     return {
            //         content: "Mustache表达式通过data为对象获取content的值"
            //     }
            // },
            //data写成简化函数形式(ES6), 返回一个对象
            data() {
                return {
                    content: "Mustache表达式通过data为对象获取content的值"
                }
            },
        })

{{}}文本插值符中表达式的引用

<body>
    <div id="app">
        <!-- 不要使用复杂表达式 -->
        <p>{{num+1}}</p>     
        <p>{{ok?"yes":"no"}}</p>           
        <p>{{message.split("")}}</p> 
    </div>
</body>
<script>
    var vm = new Vue(    
        {
            data:{
               num:8,
               ok: true,
               message:'Hello Word'
            }
        }
    );
</script>

methods方法1-直接调用

<div id="app">
      <!-- methods的直接调用 -->
      <p>{{sayHello()}}</p>

      <!--** 视图中使用data 数据,不须加this -->
      <!-- <p>您好,欢迎来自{{city}}的{{name}} ! </p> -->
      <ul>
         <li>姓名 : {{name}}</li>
         <li>城市 : {{city}}</li>
      </ul>
   </div>
   <script>
      let vm = new Vue({
         el: '#app',
         data: {
            name: "Chance",
            city: "Beijing"
         },
         methods: {
           //** 方法中使用data 数据,须加this    
            //完整函数写法
            // sayHello: function () {
            //    // return `您好,欢迎来自 ${this.city} 的 ${this.name} !`   //模板字符串(es6), 反引号,${}
            //    return '您好,欢迎来自' + this.city + '的' + this.name + '!'   //es5,单/双引号, +
            // }
            //简化函数写法 
            sayHello() {
               // return `您好,欢迎来自 ${this.city} 的 ${this.name} !`   //es6, 反引号,${}
               return '您好,欢迎来自' + this.city + '的' + this.name + '!'   //es5,单/双引号, +
            }
         }
      })      
   </script>

methods方法2-js事件调用

<div id="app">
        <div>
            <p>旧文本</p> 
            <p>tip:点击按钮把“旧文本”字样修改为“新文本”</p>
            <button onclick="btnClick()">点击</button>
        </div>
    </div>
    <script> 
         function btnClick(){
            document.getElementsByTagName('p')[0].innerHTML='新文本'
          }
        //   或
        // document.getElementsByTagName('button')[0].onclick=  function (){
        //     document.getElementsByTagName('p')[0].innerHTML='新文本'
        //   }
    </script>

 methods方法3-vue事件调用

<div id="app">
        <div>
           <p> {{msg}}</p>           
            <p>tip:点击按钮把“旧文本”字样修改为“新文本”</p>
            <!-- 此处方法可以不用加() -->
            <button v-on:click="btnClick" >点击</button>        
            <!-- v-on  可以简写为  @ -->
            <!-- 简写形式 -->
            <!-- <button @click="btnClick">点击</button> -->
        </div>
    </div>
    <script>
        var app = new Vue({
            el: "#app",
            data: {
                msg: "旧文本"
            },
            // 页面的点击事件处理方法都需要放到  methods 里面
            methods: {
                btnClick() {
                    //使用data中的数据,要加this
                    this.msg = "新文本"
                }
            }
        })  
    </script>

三、Vue常用指令

1、v-text

v-text用来在DOM元素内部插入文本内容,该指令以文本的方式更新元素的内容,即使是HTML代码,它也只当做普通字符串处理,不会解析标签,与插值表达式作用相同。

2、v-html

v-html用来在DOM元素内部插入HTML代码内容。某些情况下,从服务器请求到的数据本身就是一个HTML代码,如果直接通过“{{}}”来输出,会将HTML代码也一起输出。v-html指令更新节点元素的 innerHTML ,内容按照HTML格式进行解析,并且显示对应的内容。

3、v-bind

v-bind指令用于实现单向动态数据绑定。还可以简写为":"

前面学习的v-text和v-html指令主要作用是将值插入到模板标签的内容当中。但是,除了标签内容需要动态来渲染外,某些标签的属性也希望动态来绑定,这时就可以使用v-bind动态绑定属性。

 (1)绑定单个动态名时:

(2)绑定 多个动态名时:

(3)同时绑定静态+动态类名时:

4、v-on

v-on指令用来绑定事件监听器。在普通元素上,v-on指令可以监听原生的DOM事件(如click、dblclick、keyup、mouseover等)。

5、v-for

v-for是Vue.js的循环语句,当需要遍历数组或对象时,常用的就是列表渲染指令v-for, 它需要结合着in或者of来使用。

6、v-model

v-model指令主要用于实现表单元素和数据的双向绑定,通常用在表单类元素上(如input、select、textarea等)。所谓双向绑定,指的就是Vue实例中的data与其渲染的DOM元素上的内容保持一致,两者无论谁被改变,另一方也会相应的同步更新为相同的数据。

v-model用在复选框时,v-model的vue变量是:

  • 非数组 :关联的是checked属性

  • 数组 :关联的是value属性

 v-model.修饰符="vue数据变量"

.number以parseFloat转成数字类型
.trim去除首尾空白字符
.lazy在change时触发而非inupt时

7、v-if和v-else

 v-if是Vue.js的条件语句,v-if指令用于条件性地渲染一块内容,这块内容只会在指令的表达式返回 true 值的时候被渲染。特别注意的是,v-if所关联的是Vue.js的动态变量。

        v-if的使用一般有两个场景:

       1.通过条件判断展示或者隐藏某个元素或者多个元素;

        2.进行视图之间的切换。

8、v-show

v-show是另一个条件渲染语句,用于根据条件展示元素,用法与v-if大致一样。

        带有v-show的元素始终会被渲染并保留在DOM中,v-show指令使用css样式来控制元素的显示/隐藏。值得注意的是,注意,v-show不支持<template>元素,也不支持v-else。

 四、事件修饰符

事件修饰符:@事件名.修饰符="methods里函数"

.stop阻止事件冒泡
.prevent阻止默认行为
.once

程序运行期间, 只触发一次事件处理函数

.capture添加事件监听器时使用事件捕获模式
.self将事件绑定到该元素本身,只有自身才能触发

键盘事件的修饰符:在我们的项目中,经常需要监听一些键盘事件来触发程序的执行,例如键盘的按下(keydown)和键盘的松开(keyup)事件等等。这些事件我们往往可以给其添加一些修饰符来进行修饰,比如:

.enter监听enter回车键的触发
.tab监听tab键的触发
.up、.down 、.left、 .right监听上、下、左、右键的触发
ctrl监听ctrl键的触发
······

 五、Vue脚手架项目环境配置

安装node 下载 | Node.js 中文网icon-default.png?t=N7T8http://nodejs.cn/download/

//  通过npm全局安装@vue/cli脚手架  @3.10表示下载某个指定版本,如果不写,则下载最新版本
           npm install -g @vue/cli
           PS:如果使用npm方式安装脚手架速度太慢,或者是卡死的话,可以选择淘宝镜像cnpm的方式安装

          //安装淘宝镜像的命令行
          ①  npm install -g cnpm --registry=https://registry.npmmirror.com
          // 如果安装了cnpm淘宝镜像的话,可使用下面的命令行安装@vue/cli脚手架,网速会相对来说快一些
          ②  cnpm install -g @vue/cli
       
         //PS:如需要卸载vue/cli包,可执行以下命令行

         npm uninstall -g @vue/cli



注意:最近发现很多同学使用npm命令经常容易出现卡死不懂是情况,如出现这种情况,清执行此命令,即可解决:

npm config set registry https://registry.npm.taobao.org 

或者,哪个方式快,用哪个

npm config set registry https://registry.npmmirror.com

创建项目:

cd helloword

运行项目:

npm run serve

六:后台管理系统路由实现步骤

参考链接

浏览 (chaoxing.com)icon-default.png?t=N7T8https://mooc1.chaoxing.com/mooc-ans/ueditorupload/read?objectId=22010f0b1d9867bee45953ef428e3542&fileOriName=%E5%90%8E%E5%8F%B0%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E8%B7%AF%E7%94%B1%E5%AE%9E%E7%8E%B0%E6%AD%A5%E9%AA%A4.docx

七、Element-UI练习

根据下面的参考资料,完成Element-UI练习。

Element-UI快速入门:Element-UI快速入门 - 前端教程

Element UI官网:https://element.faas.ele.me/#/zh-CN

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡匹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值