model模块
所谓的模块就是一个独立的文件,文件与文件之间是相互封闭的。
//-----------------modeltest.js-----------------
export var webName = "百度"; // 定义变量
export let url = 'www.baidu.com'; // 定义变量
export const year = 2017; // 定义常量
// 导出别名
export { // 可以导出变量和常量
webName as web, // web 是别名
url as webUrl,
year as webYear
} export function add(a,b){ // 可以导出一个函数
return a+b;
} export default class User{ // 可以导出一个类 default 默认导出值,当没有其他导出,此导出默认为整个模块的导出值
constructor(){ // constructor 构造器
console.log('user被创建了');
}
} export class Register{ // 可以导出一个类
constructor(){
console.log('register被创建了');
}
}
//-----------------Hello.vue------------------
// import User,{webName,url,year,add} from '../models/modeltest.js' // User是默认导出,需要单独拿出
// import User,* as uu from '../models/modeltest.js'; // * 代表全局导入,uu为别名,导入的变量需要加别名识别,例:uu.webName,此为ES6提供的方法
// var mt = require('../models/modeltest.js'); // require是ES5提供的方法
import Student,* as uu from '../models/modelChild.js';
console.log('webName:' + uu.webName);
console.log('add:' + uu.add(9,12));
var user = new uu.User();
// 在父子类继承的过程中,如果父类里面有default前缀,default无效且会报错,如果想要被继承,需要删除父类中的default
export class Register{
var student = new Student();
// console.log(mt.webName);
// console.log(mt.url);
// console.log(mt.age);
// console.log(mt.add(3,4));
//----------------modelChild.js(继承)------------------
// 模块可以被继承
export {webName,url,year,add,User} from './modeltest.js'; // User类的default必须去掉,否则无法访问 export default class Student{ // 子类中可以写默认 default
constructor(){
console.log('Student被创建了');
}
}
//-------------- require 和 import 差别 --------------
require相当于module.exports的传送门,module.exports后面的内容是什么,require的结果就是什么,对象、数字、字符串、函数......再把require的结果赋值给某个变量,相当于把require和module.exports进行平行空间的位置重叠。
而且 require 理论上可以运用在代码的任何地方,甚至不需要赋值给某个变量之后再使用,比如:
require('./a')(); // a模块是一个函数,立即执行a模块函数
var data = require('./a').data; // a模块导出的是一个对象
var a = require('./a')[0]; // a模块导出的是一个数组
在使用时,完全可以忽略模块化这个概念来使用require,仅仅把它当做一个node内置的全局函数,它的参数甚至可以是表达式:
require(process.cwd() + '/a');
但是import则不同,它是编译时的(require是运行时的),它必须放在文件开头,而且使用格式也是确定的,不容质疑。它不会将整个模块运行后赋值给某个变量,而是只选择import的接口进行编译,这样import在性能上比require好很多。
从理解上,require是赋值过程,import是解构过程。
注: 优先import
实例:
model模块的更多相关文章
- Django之model模块创建表完整过程
Django中,与数据库相关的模块是model模块,它提供了一种简单易操作的API方式与数据库交互,它是通过ORM映射的方式来操作数据库,一个类对应数据库一张表,一个类属性,对应该表的一个字段,一个实 ...
- Backbone事件机制核心源码(仅包含Events、Model模块)
一.应用场景 为了改善酷版139邮箱的代码结构,引入backbone的事件机制,按照MVC的分层思想搭建酷版云邮局的代码框架.力求在保持酷版轻量级的基础上提高代码的可维护性. 二.遗留问题 1.b ...
- thinkphp model模块
1.获取系统常量信息的方法:在控制器DengLuController里面下写入下面的方法,然后调用该方法. public function test() { //echo "这是测试的&qu ...
- hdwiki中model模块的应用
control中调用model原则是这样的,如果你的这个model在本control中大部分方法中都要用到,那么,就写在构造函数里面.例如,名字为doc的control的构造函数如下: functio ...
- Django学习之四:Django Model模块
目录 Django Model 模型 MODEL需要在脑子里记住的基础概念 区分清楚,必须不能混淆的 class Meta 内嵌元数据定义类 简单model创建实例 数据源配置 接着通过models在 ...
- python之model模块和包的介绍
一,模块的概念:常见场景:一个模块就是一个包含了一组功能的Python文件,比如spam.py,模块名为spam,可以通过import spam使用 在Python中,模块的使用方式都是一样的,但其实 ...
- save——model模块保存和载入使用简单例子
https://www.w3xue.com/exp/article/201812/10995.html =====1====实践模型存入 import tensorflow as tf from te ...
- Backbone源码解析(二):Model(模型)模块
Model(模型)模块在bk框架中的作用主要是存储处理数据,它对外和对内都有很多操作数据的接口和方法.它与视图(Views)模块精密联系着,通过set函数改变数据结构从而改变视图界面的变化.下面我们来 ...
- Backbone源码解析(一):Event模块
Backbone是一个当下比较流行的MVC框架.它主要分为以下几个模块: Events, View, Model, Collection, History, Router等几大模块.它强制依赖unde ...
随机推荐
- bzoj 1012 BST 支持插入,区间最大
水... /************************************************************** Problem: 1012 User: idy002 Lang ...
- JavaScript设计模式与开发实践——读书笔记1.高阶函数(下)
上部分主要介绍高阶函数的常见形式,本部分将着重介绍高阶函数的高级应用. 1.currying currying指的是函数柯里化,又称部分求值.一个currying的函数会先接受一些参数,但不立即求值, ...
- python开发_gzip_压缩|解压缩gz文件_完整版_博主推荐
''' gzip -- 支持gzip文件 源文件:Lib/gzip.py 这个模块提供了一些简单的接口来对文件进行压缩和解压缩,类似于GNU项目的gzip和gunzip. 数据的压缩源于zlib模块的 ...
- Vue学习记录-状态管理
要解决的问题 平时的系统开发中,基本都会碰到这个权限问题,需要根据用户的登录状态进行处理.最常见的情况就是“先登录,后使用”.除去打包成APP,无法看到连接外,如果地址栏里直接输入地址就能绕过登录的话 ...
- C++虚函数、虚继承
http://blog.csdn.net/hackbuteer1/article/details/7883531 转载请标明出处,原文地址:http://blog.csdn.net/hackbutee ...
- Git配置非22端口,解决:ssh: connect to host xxx port 22: Connection timed out fatal: The remote end hung up unexpectedly
背景:私自搭建了Git服务器,而Git本身就是SSH进行连接的,而Git命令上默认只能通过22端口实现. 解决方法: 第一种: 在系统的用户目录下的文件夹:.ssh 如果该路径下没有config文件, ...
- Highcharts构建分组分类坐标轴
Highcharts构建分组分类坐标轴 分组分类坐标轴是将坐标轴的类别标签进行进一步分组,从而形成双层.多层结构. 这样更利于数据分组展现. 实现分组分类坐标轴须要借助第三方插件Grouped-Cat ...
- CAS3.5.x(x>1)支持OAuth2 server
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- c#面试3(选择题)
1.下列有关基本类的大小不正确的是 A.int类型是4个字节 B.bool类型是1个字节 C.long类型是8个字节 D.char类型是一个字节 3.有关数组说法不正确的是 A.数组的内存是分配在栈中 ...
- Mysql中DATE_SUB函数
在对数据查询或菜单时经常要对指定的时间或时间段进行查询,例如要查询一天内的信息,要查询一周内的信息,要查询一个月内的. 定义和用法 DATE_SUB() 函数从日期减去指定的时间间隔. 1.语法 DA ...