Vue.js进阶(二)

一、组件 Component

1. 局部组件

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

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

<body>
    <div id="app">
        <Navbar></Navbar>
    </div>
    <script src="vue.min.js"></script>
    <script>
        new Vue({
            el: '#app',
            //定义vue使用的组件
            components: {
                //组件的名字
                'Navbar': {
                    //组件的内容
                    template: '<ul><li>首页</li><li>学员管理</li></ul>'
                }
            }
        })
    </script>
</body>

</html>

在这里插入图片描述

2. 全局组件

定义全局组件:components/Navbar.js

// 定义全局组件
Vue.component('Navbar', {
    template: '<ul><li>首页</li><li>学员管理</li><li>讲师管理</li></ul>'
})

使用
在这里插入图片描述
测试
在这里插入图片描述

二、实例生命周期

1. created 页面渲染之前执行

2. mounted页面渲染之后执行

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

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

<body>
    <div id="app">
        hello
    </div>
    <script src="vue.min.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
                
            },
            created(){
                //在页面渲染之前执行
                debugger
                console.log('created~~~~~~')
            },
            mounted(){
                //在页面渲染之后执行
                debugger
                console.log('mounted~~~~~~')
            }
        })
    </script>
</body>

</html>

三、路由

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

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

<body>
    <div id="app">

        <h1>Hello App!</h1>
            <p>
                <!-- 使用 router-link 组件来导航. -->
                <!-- 通过传入 `to` 属性指定链接. -->
                <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
                <router-link to="/">首页</router-link>
                <router-link to="/student">会员管理</router-link>
                <router-link to="/teacher">讲师管理</router-link>
            </p>
            <!-- 路由出口 -->
            <!-- 路由匹配到的组件将渲染在这里 -->
            <router-view></router-view>

    </div>
    <script src="vue.min.js"></script>
    <script src="vue-router.min.js"></script>
    <script>
        
        // 1. 定义(路由)组件。
        // 可以从其他文件 import 进来
        const Welcome = { template: '<div>欢迎</div>' }
        const Student = { template: '<div>student list</div>' }
        const Teacher = { template: '<div>teacher list</div>' }
        // 2. 定义路由
        // 每个路由应该映射一个组件。
        const routes = [
            { path: '/', redirect: '/welcome' }, //设置默认指向的路径
            { path: '/welcome', component: Welcome },
            { path: '/student', component: Student },
            { path: '/teacher', component: Teacher }
        ]
        // 3. 创建 router 实例,然后传 `routes` 配置
        const router = new VueRouter({
            routes // (缩写)相当于 routes: routes
        })
        // 4. 创建和挂载根实例。
        // 从而让整个应用都有路由功能
        const app = new Vue({
            el: '#app',
            router
        })

    </script>
</body>

</html>

测试
在这里插入图片描述

四、axios

axios是独立的项目,不是vue里面的一部分,使用axios经常和vue一起使用,实现ajax操作
① 先在data中定义变量
② 再在methods中定义方法
③ 最后调用方法

第一步:创建html页面,引入js文件,包含两个js文件:vue和axios
第二步:创建json文件,数据创建
第三步:使用axios发送ajax请求,请求文件,得到数据,在页面显示

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

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

<body>
    <div id="app">
        <!--把userList数组里面数据显示-->
        <div v-for="user in userList">
            {{user.name}}
            {{user.age}}
        </div>

    </div> 
    <script src="vue.min.js"></script>
    <script src="axios.min.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {    //在data定义变量和初始值
                //定义变量:空数组
                userList:[]
            },
            created(){ //页面渲染之前执行,调用定义的方法
                this.getUserList()
            },
            methods:{  //编写具体的方法
                getUserList(){
                    //axios.提交方式("请求接口路径").then(箭头函数).catch(箭头函数)
                    //axios.get('http://localhost:8081/admin/ucenter/member')
                    axios.get("data.json")
                    .then(Response =>{
                        //console.log(Response)
                        this.userList = Response.data.data.items
                        console.log(this.userList)
                    })  //请求成功执行then方法
                    .catch(error=>{
                    
                    }) //请求失败执行catch方法
                }
            }
        })
    </script>
</body>

</html>

在这里插入图片描述

测试在这里插入图片描述
在这里插入图片描述

五、element-ui

element-ui 是饿了么前端出品的基于 Vue.js的 后台组件库,方便程序员进行页面快速布局和构建

第一步:引入css

<!-- import CSS -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">

第二步:引入js

<!-- import Vue before Element -->
<script src="vue.min.js"></script>
<!-- import JavaScript -->
<script src="element-ui/lib/index.js"></script>

第三步:编写html

<div id="app">
    <el-button @click="visible = true">Button</el-button>
    <el-dialog :visible.sync="visible" title="Hello world">
        <p>Try Element</p>
    </el-dialog>
</div>

六、node.js

1. 介绍

  • 之前学过java,运行java需要安装jdk环境
  • node.js是JavaScript的运行环境,用于执行JavaScript代码环境
    不需要浏览器,直接使用node.js运行JavaScript代码

七、npm

  • 在后端开发中,使用maven构建项目,管理jar依赖,联网下载依赖
  • npm类似于maven,用在前端中,管理前端js依赖,
    联网下载js依赖

1. npm项目初始化操作

命令 npm init -y
项目初始化之后,生成文件package.json,类似于后端pom.xml文件

2. npm下载js依赖

命令 npm install 依赖名称

3. 根据package.json文件下载依赖

命令 npm install

4.其它命令

#更新包(更新到最新版本)
npm update 包名
#全局更新
npm update -g 包名
#卸载包
npm uninstall 包名
#全局卸载
npm uninstall -g 包名

八、babel

babel是转码器,把es6代码转换成es5代码
因为写的代码es6代码,但是es6代码浏览器兼容性很差,如果使用es5代码浏览器兼容性很好,编写es6代码,把es6代码转换es5运行

九、模块化

(1) 开发后端接口时侯,开发controller service mapper,controller注入service,service注入mapper
在后端中,类与类之间的调用称为后端模块化操作
(2) 前端模块化,在前端中,js与js之间调用称为前端模块化操作
(3) ES6使用 export 和 import 来导出、导入模块。

1. ES6实现模块化

注意:如果使用es6写法实现模块化操作,在node.js环境中不能直接运行的,需要使用babel把es6代码转换es5代码,才可以在node.js进行运行

1.1 导出模块
在这里插入图片描述

1.2 导入模块
在这里插入图片描述

2. ES6模块化的另一种写法

1.1 导出模块
在这里插入图片描述

1.2 导入模块
在这里插入图片描述

3. ES5实现模块化

导出模块
创建 common-js模块化/四则运算.js

// 定义成员:
const sum = function(a,b){
    return parseInt(a) + parseInt(b)
}
const subtract = function(a,b){
    return parseInt(a) - parseInt(b)
}
const multiply = function(a,b){
    return parseInt(a) * parseInt(b)
}
const divide = function(a,b){
    return parseInt(a) / parseInt(b)
}

// 导出成员:
module.exports = {
    sum: sum,
    subtract: subtract,
    multiply: multiply,
    divide: divide
}
//简写
module.exports = {
    sum,
    subtract,
    multiply,
    divide
}

创建 common-js模块化/引入模块.js

//引入模块,注意:当前路径必须写 ./
const m = require('./四则运算.js')
console.log(m)
const result1 = m.sum(1, 2)
const result2 = m.subtract(1, 2)
console.log(result1, result2)

十、webpack

Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值