JS到VUE

作者: wyc0859 | 来源:发表于2019-11-10 01:08 被阅读0次
以前给页面绑定数据是这样的

有多复杂,多不方便,显而易见。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p>原始的网页内容</p>
<div id="app"></div>
<script src="./index.js"></script>
</body>
</html>
//index.js
let dom=document.getElementById('app');
dom.append("<div>append</div>");    //页面显示<div>append</div>,div未被转译

const div_box=document.createElement("div");
div_box.innerText='append';
dom.append(div_box);    //页面显示append

const footer=document.createElement("div");
footer.innerText='footer';
dom.append(footer);    //页面显示footer

加入面向对象模式,变成这样
<p>原始的网页内容</p>
<div id="app"></div>
<script src="./header.js"></script>
<script src="./footer.js"></script>
<script src="./index.js"></script>
//header.js
function Header() {
    let dom=document.getElementById('app');
    const div_box=document.createElement("div");
    div_box.innerText='header';
    dom.append(div_box);
}
//footer.js
function Footer() {
    let dom=document.getElementById('app');
    const div_box=document.createElement("div");
    div_box.innerText='footer';
    dom.append(div_box);
}
index.js
let dom=document.getElementById('app');  //这句重复了,可以删除
new Header();
new Footer();

面向对象的优点当然很多,但也有如下缺点:
1.引入N个JS文件,就会有N个http请求,会导致加载缓慢
2.当从header.js中看不出引用关系
3.JS文件引入顺序等导致错误
以上缺点怎么解决?改用ES moudule方式

webpack登场

改用ES moudule方式后,只引入1个JS,不存在顺序颠倒,依赖关系直观明了;

//index.js
import Header from './header'
import Footer from './footer' 
new Header();
new Footer();

//header.js
function Header() {
    let dom=document.getElementById('app');
    const div_box=document.createElement("div");
    div_box.innerText='header';
    dom.append(div_box);
}
export default Header;

但一运行都报错了
Uncaught SyntaxError: Cannot use import statement outside a module
因为浏览器不能识别import。那怎么办?webpack出现了。

npm init 一路回车
npm install wabpack-cli --save-dev
npm install webpack --save
npx webpack index.js //打包index.js
打包成功后多了dist目录下main.js
把原来的index.html下引入的index.js改为main.js就可以运行成功了
注意header和footer.js文件中引出要export default Footer;

修改webpack配置文件

1、js文件统一放在src目录下
2、修改webpack配置主入口文件位置

Webpack到VUE

Webpack偏向于应用打包的定位不同,rollup更专注于Javascript类库打包。vue用的是rollup打包。但大原理是一样的。

1、import 模块方式引入JS
2、loader打包各种css,img,pdf,自定义文件名如vue等
3、plugin生成html文件,删除原打包目录等
4、devserver 服务器,监听并编译,修改代码自动刷新页面,自动打开浏览器
5、可自定义devserver服务器

加入flow到VUE

Flow 是 facebook 出品的 JavaScript 静态类型检查工具。Vue.js 的源码利用了 Flow 做了静态类型检查。

Flow 的类型检查分成 2 种方式:

类型推断: 通过变量的使用上下文来推断出变量类型,然后根据这些推断来检查类型。
类型注释: 事先注释好我们期待的类型,Flow 会基于这些注释来判断。

相关文章

  • vue.js 从基础到实战(汇总)

    vue.js 从基础到实战 Vue.js 介绍 什么是vue vue一词是法语,同英语中的view。vue.js是...

  • Vue.js 第一天

    Vue.js 一、Vue.js简介 1.Vue.js 是什么 vue.js 也称为Vue,读音 /vju:/ ,类...

  • 01vue-安装vue

    资源 1.Vue.js2.0从入门到放弃---入门实例(一)2.Vue.js入门学习(一)3.Vue官方中文Api...

  • 2019-07-08

    前端 vue 到js 到 顶层的app.vue 到 index的 ’ ‘ (是后端路径名)到后端 rout...

  • JS到VUE

    以前给页面绑定数据是这样的 有多复杂,多不方便,显而易见。 加入面向对象模式,变成这样 面向对象的优点当然很多,但...

  • Vue2.0 环境搭建到运行

    Vue2.0 从环境搭建到发布 1 Vue2.0 推荐开发环境 1.1 Node.js 1.1.1 Node.js...

  • vuedose.tips(翻译系列二十三)

    Using Scoped Slots in Vue.js 我多次认识到想要在Vue.js进行编码时如何提高生产力 ...

  • Vue使用websocket进行心跳连接

    Vue页面template Vue页面js 其他js 部分截图 用途 即使通讯 消息通知 封装当前页面地址到APP...

  • 【MAC 上学习 Vue】Day 1. 创建 Hello Wor

    下载 Vue.js Vue.js 开发版本下载地址为:https://vuejs.org/js/vue.js 安装...

  • Vue.js入门

    Vue笔记系列2、Vue.js渐进3、Vue.js进阶 Vue.js的概述 如官网所说,Vue.js是一款轻量级的...

网友评论

      本文标题:JS到VUE

      本文链接:https://www.haomeiwen.com/subject/qqvnbctx.html