vue入门基础(二)
vue-cli项目
是一个Vue官方提供的脚手架,用于快速生成一个Vue的项目模板。
 预先定义好的目录结构以及基础代码,就好比在创建maven项目式可以选择创建一个骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速。
主要的功能:
- 统一的目录结构
- 本地调试
- 热部署
- 单元测试
- 集成打包上线
vue-cli安装配置看博客
模块化的演进
JS
使用js加载有一个弊端
 全局作用域下容易造成变量冲突
 文件只能按照< script>的书写顺序进行加载
 开发人员必须按照主观解决模块和代码快的依赖关系
 在大型项目中各种资源难以管理,长期积累的问题导致代码库混乱不堪。
CommonsJS
服务器端的nodejs遵循CommonsJS规范,该规范核心思想是允许模块通过require方法来同步加载所需要依赖的其他模块,然后通过exports或者module.exports来导出需要暴露的接口
 
- 优点1:
服务器端模块便于重用
 NPM中已经有超过45万个可以使用的模块包
 简单易用
- 缺点:
同步的模块加载方式不适合在浏览器环境中,同步意味着阻塞加载,浏览器资源是异步加载的
 不能非阻塞的并行加载多个模块
- 实现:
服务器端的nodejs
 Browserify,浏览器端的CommonsJS实现,可以使用NPM的模块,但是编辑打包后的文件体积比较大
modules-webmake,类似browserify,但是不如browserify灵活
wreq,browserify的前身
AMD

- 优点:
适合在浏览器环境中异步加载模块
 可以并行加载多个模块
- 缺点:
提高了开发成本,代码的阅读和书写比较困难难,模块定义方式的语义不畅
 不符合通用的模块化思维方式,是一种妥协的实现
- 实现:
RequireJS
 curl
CMD
和AMD很相似,尽量保持简单,并且在CommonsJS和nodeJS的modules规范保持了很大的兼容性
- 优点:
依赖就近,延迟执行
 可以很容易在nodeJS中运行
- 缺点:
依赖SPM打包,模块的加载逻辑偏重
- 实现:
sea.js
 coolie
ES6模块
- 优点:
容易进行静态分析
 面向未来的EcmaScript标准
- 缺点:
原生浏览器端还没有实现该标准
 全新的命令,新版的NodeJs才支持
- 实现:
babel
webpack学习
现代JS应用程序的静态模块打包器,当webpack处理应用程序时,它会递归的构建一个依赖关系图,其中包含应用程序需要的每个模块,然后将这些模块打包成一个或者多个bundle
模块加载兼打包工具,可以把各种资源,JS JSX ES6 SASS LESS 图片等都作为模块来处理和使用
node.js遵循commons.js规范
- export 暴露接口
- import引用接口
- require加载模块
安装
npm install webpack -g
npm install webpack -cli -g
  
 - 1
- 2
测试安装成功
webpack  -v
webpack -cli -v
  
 - 1
- 2

配置
创建webpack.config.js配置文件

 直接运行webpack命令打包
使用webpack
1、创建项目
2、创建一个名为modules的目录,用于放置JS模块等资源文件
3、在modules下创建模块文件,如hello.js,用于编写js模块相关代码
//暴露一个方法
exports.sayHi=function(){
    document.write("<h1>世界如此美妙</h1>");
}
exports.sayHi2 = function() {
    document.write("<h1>hello</h1>")
}
exports.sayHi3 = function() {
    document.write("<h1>hello</h1>")
};
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
4、在modules下创建一个main.js的入口文件,用于打包时设置entry属性
var  hello= require("./hello");
hello.sayHi();
hello.sayHi2()
  
 - 1
- 2
- 3
- 4
5、在项目目录下创建webpack.config.js配置文件
module.exports = {
  //入口
    entry:'./modules/main.js',
  //输出
    output:{
        filename:'.js/bundle.js'
    }
};
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
6、输入打包命令webpack
 在idea控制台直接执行 webpack ,如果失败就使用管理员的权限打开idea
7、在项目目录下创建HTML页面,如index.html,导入webpack打包后的js文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--前端的模块化开发-->
  <!--引入打包后的js文件-->
<script src="dist/js/bundle.js"></script>
</body>
</html>
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
8、运行HTML查看效果
vue-router路由
vue router 是vue.js官方的路由管理器,他和vue.js的核心深度集成,让构建单页面应用变的易如反掌,包含的功能有:
- 嵌套的路由/视图表
- 模块化的、基于组件的路由配置
- 路由参数、查询、、通配符
- 基于vue.js过渡系统的视图过渡效果
- 细粒度的导航控制
- 带有自动激活的CSS的链接
- HTML历史模式或者hash模式,
- 自定义的滚动条行为
vue+elementUI
前端界面可以选择elementUI来做
elementUI 查看组件
安装一个新的程序
//创建一个hello-vue的工程
vue init webpack hello-vue
//进入工程目录
cd hello-vue
//安装vue-router
npm install vue-router --save-dev
//安装elementUI
npm i element-ui -S
//安装依赖
npm install
//安装sass加载器
cnpm install sass-loader node-sass --save-dev
//启动测试
npm run dev
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14

 1、创建首页视图。在views目录下创建一个名为Main.vue的视图组件:
<template>
<h1>首页</h1>
</template>
<script>
export default {
  name: 'Main'
}
</script>
<style scoped>
</style>
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
2、创建登录页视图,在views目录下创建一个名为Login.vue的视图组件,其中el-*的元素为elementUI组件
<template>
<div>
  <el-form ref="loginform" :model="form" label-width="80px">
    <h3 class="login-title">欢迎登录</h3>
    <el-form-item label="账号" prop="username">
      <el-input type="text" placeholder="请输入账号"  v-model="form.username"/>
    </el-form-item>
    <el-form-item label="密码" prop="password">
      <el-input type="password" placeholder="请输入密码"  v-model="form.password"/>
    </el-form-item>
    <el-form-item >
      <el-button type="primary" v-on:click="onSubmit('loginfrom')">登录</el-button>
    </el-form-item>
  </el-form>
  <el-dialog
    title="温馨提示"
    :visible.sync="dialogVisible"
    width="30%"
    :before-close="handleClose">
    <span>请输入账号和密码</span>
    <span slot="footer" class="el-dialog__footer">
      <el-button type="primary" @click="dialogVisible=false">确定</el-button>
    </span>
  </el-dialog>
</div>
</template>
<script>
export default {}
</script>
<style scoped>
</style>
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
3、创建路由,在router目录下创建一个名为index.js的vue-router的路由配置文件
import Vue from 'vue'
import Router from 'vue-router'
import Main from '../views/Main'
import Login from '../views/Login'
Vue.use(Router)
export default new Router({
  routes: [
    {
      path: '/main',
      component: Main
    },
    {
      path: '/login',
      component: Login
    }
  ]
})
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
4、绑定APP.vue
<template>
  <div id="app">
   <router-view></router-view>
  </div>
</template>
<script>
export default {
  name: 'App'
}
</script>
<style scoped>
</style>
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
5、main.js
import router from './router'
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import App from './App.vue'
Vue.use(router)
Vue.use(ElementUI)
Vue({
  el: '#app',
  router,
  render: h => h(App)
})
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
路由嵌套
路由嵌套又称为子路由,通常由多层嵌套的组件组合而成,URL中各段动态路由也按照某种结构对应嵌套的各层组件
 
 欢迎斧正~
文章来源: blog.csdn.net,作者:张艳伟_Laura,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/Laura__zhang/article/details/120248250
- 点赞
- 收藏
- 关注作者
 
             
           
评论(0)