node编程中最重要的思想就是模块化,import和require都是被模块化所使用。
遵循规范
require是 AMD规范引入方式
import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法
调用时间
require是运行时调用,所以require理论上可以运用在代码的任何地方
import是编译时调用,所以必须放在文件开头
本质
require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量
import是解构过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require
1.require
<component :is="locationPath"/>
locationPath = resolve => require.ensure([], () => resolve(require('./' + Url + '.vue')));
require 怎么向子组件传参
registerComponent(path,id) {
let that = this;
return import('./' + path + '.vue').then(component => {
let constructor = Vue.extend(component.default);
let instance = new constructor();
// 挂载到DOM元素在对应的ID上
instance.$mount('#' + id);
}).catch(function (e) {
console.log('=======动态加载失败!======>',e);
node编程中最重要的思想就是模块化,import和require都是被模块化所使用。遵循规范require是 AMD规范引入方式import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法调用时间require是运行时调用,所以require理论上可以运用在代码的任何地方import是编译时调用,所以必须放在文件开头本质require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量import是解构过程,但
vue-cli是由vue官方发布的快速构建vue单页面的脚手架。
使用 vue-cli构建的项目,在 默认情况下 ,执行 npm run build 会将所有的js代码打包为一个整体,
打包位置是 dist/static/js/app.[contenthash].js
类似下面的路由代码
router/index.js 路由相关信息,该路由文件引入了多个 .vue组件
import Hello from '@/components/Hello'
import Province from '@/components/Province'
import Segment from '@/comp
import 'iview/dist/styles/iview.css';
如果是在.vue文件中导入,那么是在vue组件的style里面导入,且import前面需要加@符号
<style>
@import 'iview/dist/styles/iview.css';
</style>
3. 导入 js 文件
1. 需求描述
最近开发的一个项目,涉及到这样一个需求:随着项目的不断推进,后台管理功能逐渐增多,与此同时,静态路由表也逐渐扩大,需要把静态路由方式转换为动态路由方式。要完成这样一个转换,有几个技术要点需要解决,其中一个就是需要Vue动态加载组件,那么,Vue动态加载组件的常用方式有哪些呢?
2. Vue动态加载组件的两类方式
Vue加载组件主要有正常加载和懒加载,示例代码如下:
//正常加载
import index from '../pages/index.vue'
import view from '
CommonJS的由来
在早期没有模块化思想时代码没有很好的编写规范,导致很多代码、逻辑重复、缺乏条理性且不易管理维护,这也让很多开发者头疼不已。随着JavaScript 社区的发展,社区为JavaScript制定了相应的规范,而CommonJS规范的提出得到了大家的承认和广泛的应用,2009年CommonJS就此诞生了。
CommonJS介绍
CommonJS实现了Javascript的模块化规范,规范了模块的特性和各模块之间的相互依赖性,使得代码可以更好的编写和维护,同时提高了代码的复用性。定义每个文件
一、vue中require与import的区别
在es6之前js一直没有自己的模块语法,为了解决这种尴尬就有了require.js的出现。在es6发布之后js又引入了import的概念。使得不清楚两者之间的区别在实际使用过程中造成了自己的误解
ES6标准发布后,module成为标准,标准使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们依然采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。
二、require基本用
import:编译时调用,必须放在文件开头
懒加载:component: resolve => require(['@/view/index.vue'], resolve)
用require这种方式引入的时候,会将你的component分别打包成不同的js,加载的时候也是按需加载,只用访问这个路由网址时才会加载这个js
非懒...
使用懒加载原因:
像vue这种(spy)单页面应用,如果没有使用到懒加载,webpack打包的文件过大,造成进入首页时,加载的资源过多,时间过长,即使做了loading也不利于用户体验,而运用懒加载可以将页面进行划分,需要的时候加载页面,可以有效的分担首页所承担的加载压力,减少首页加载事件,简单来说就是进入首页不用一次加载过多资源造成时间过长
问题背景:
路由懒加载在开发阶段的时候,随手改一行代码热更新都是要几千ms,导致等待过长。这里是异步加载导致 webpack 每...
组件间跳转
跳转到tabBar页面:uni.switchTab({ url:“xxxx” })
跳转到非tabBar页面:uni.navigateTo({ url:“xxxx”})
来禁用原生导航栏
例如:禁用首页导航栏。
uniapp图片不显示
<image src="../../static/logo.png"></image>
正常引入的图片在app中不显示?改成一下格式即可
<image :src="require('../../static
本质上的区别:
session的使用方式是客户端cookie里存id,服务端session存用户数据,客户端访问服务端的时候,根据id找用户数据。
而token的使用方式是客户端里存id(也就是token)、用户信息、密文,服务端什么也不存,服务端只有一段加密代码,用来判断当前加密后的密文是否和客户端传递过来的密文一致,如果不一致,就是客户端的用户数据被篡改了,如果一致,就代表客户端的用户数据正常且正确。
session,注册登录->服务端将user存入session->将session
遵循的模块化规范不一样
模块化规范:即为 JavaScript 提供一种模块编写、模块依赖和模块运行的方案。谁让最初的 JavaScript 是那么的裸奔呢——全局变量就是它的模块化规范。
require/exports 出生在野生规范当中,什么叫做野生规范?即这些规范是 JavaScript 社区中的开发者自己草拟的规则,得到了大家的承认或者广泛的应用。比如 CommonJS、AM...
const contexts = require.context('../../views/',true, /\.vue$/);
contexts.keys().forEach(key=>{
const name = key.slice(2,-10);
routes[name] = contexts(key).default || contexts(key);
Vue组件知识点总结一.vue中的组件化开发二.组件的三个组成部分
组件化开发指的是根据封装的思想,把页面上可重用的UI结构封装为组件,从而方便项目的开发和维护。
一.vue中的组件化开发
vue是一个支持组件化开发的前端框架。
vue中规定:组件的后缀名为.vue 。之前接触到的App.vue文件本质上就是一个vue的组件。
二.组件的三个组成部分
每个.vue组件都由3个部分构成,分别是:
template : 组件的模板结构
script : 组件的JavaScript行为
style : 组件的样