手写Vue (1) 准备工作

1.安装插件

  "devDependencies": {
    "html-webpack-plugin": "^4.0.4",
    "webpack": "^4.42.1",
    "webpack-cli": "^3.3.11",
    "webpack-dev-server": "^3.10.3"
  }

  

2.配置 项目 的基本结果

(1)根目录下新建 src/index.js , public/index.html

(2) 添加 webpack 配置文件

let path = require(‘path‘)
let htmlwebpackplugin = require(‘html-webpack-plugin‘)
module.exports = {
  mode: ‘development‘,
  entry: ‘./src/index.js‘,
  output: {
    filename: ‘bundle.js‘,
    path: path.resolve(__dirname, ‘dist‘)
  },
  devtool: ‘source-map‘,  //产生源码映射文件
  plugins: [
    new htmlwebpackplugin({
      template: path.resolve(__dirname, ‘./public/index.html‘)
    })
  ],
  // 更改解析模块的解析方式
  resolve: {
    modules: [path.resolve(__dirname, ‘source‘), path.resolve(‘node_modules‘)]
  }
}

(3) 添加项目启动 打包命令

 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "webpack-dev-server",
    "build": "webpack"
  },

(4) 测试项目启动

在src/index.js  添加测试代码

alert("1")

(5)测试结果

运行 npm run  start  得到

 Project is running at http://localhost:8080/

在浏览器 打开     http://localhost:8080/ 得到结果

原文地址:https://www.cnblogs.com/guangzhou11/p/12641658.html

时间: 2024-11-10 16:52:36

手写Vue (1) 准备工作的相关文章

手写Vue (1) 对象劫持

1.引入我们手写的Vue 拿到配置数据 import Vue from '../source/src/index'; let vm = new Vue({ el: '#app', data() { return { msg: 'hello', school: { name: 'zf', age: 10 }, arr: [1, 2, 3] } }, computed: { }, watch: { } }) console.log(vm) // setTimeout(() => { // vm.ar

手写vue中v-bind:style效果的自定义指令

自定义指令 什么是自定义指令 以 v- 为前缀,然后加上自己定义好的名字组成的一个指令就是自定义指令.为什么要有自定义指令呢?在有些时候,你仍然需要对普通的DOM元素进行底层的操作,这个时候就可以用到自定义指令. 自定义指令的语法 全局自定义指令 // 注册一个全局自定义指令 `v-focus` Vue.directive('focus', { // 当被绑定的元素插入到 DOM 中时-- inserted: function (el) { // 聚焦元素 el.focus() } }) 局部自

手写vue双向绑定数据

来一张原理图: 实现思路: (1)绑定data 种的数据,为每个数据添加指令.通过Object,defineProperty() 来通知属性是否更改 (2) 找到每个DOM节点的指令.绑定事件.并绑定watcher (3)  实现DOM事件改变之后, 响应data数据,实现视图更新 <!DocType> <html> <title>vue 的双向绑定事件</title> <body id="app"> <input ty

学习手写vue,理解原理

class Compiler{ constructor(el,vm){ // 判断el属性 是不是 一个元素, 如果不是就获取 this.el = this.isElementNode(el)?el:document.querySelector(el); // console.log(this.el); this.vm = vm; // 把当前节点放到内存中 let fragment = this.node2fragment(this.el); // console.log(fragment,"

基于vue手写tree插件那点事

目录 iview提供的控件 手写控件 手写控件扩展 手写控件总结 # 加入战队 微信公众号 主题 Tree树形控件在前端开发中必不可少,对于数据的展示现在网站大都采取树形展示.因为大数据全部展示出来对于用户来说是不友好的.今天我们自己手写一个Tree插件. iview提供的控件 iview已经很成熟了,如果说我写的控件和iview提供的控件谁更好,那肯定是选择iview , 手写控件只是为了更好的了解vue父子组件之间的通信的. 请读者还是不要拿我的控件和iview或者其他第三方的去对比.下面我

手写PE文件(二)

[文章标题]: 纯手工编写的PE可执行程序 [文章作者]: Kinney [作者邮箱]: [email protected] [下载地址]: 自己搜索下载 [使用工具]: C32 [操作平台]: win 7 [作者声明]: 只是感兴趣,没有其他目的.失误之处敬请诸位大侠赐教! ---------------------------------------------------------------------------------------------------------------

用python实现的的手写数字识别器

概述 带GUI界面的,基于python sklearn knn算法的手写数字识别器,可用于识别手写数字,训练数据集为mnist. 详细 代码下载:http://www.demodashi.com/demo/13039.html 前言 k-近邻(kNN, k-NearestNeighbor)算法是一种基本分类与回归方法,通俗点来说,就是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的 k 个实例,这 k 个实例的多数属于某个类,就把该输入实例分为这个类. python 第三方

Spring系列之手写一个SpringMVC

目录 Spring系列之IOC的原理及手动实现 Spring系列之DI的原理及手动实现 Spring系列之AOP的原理及手动实现 Spring系列之手写注解与配置文件的解析 引言 在前面的几个章节中我们已经简单的完成了一个简易版的spring,已经包括容器,依赖注入,AOP和配置文件解析等功能.这一节我们来实现一个自己的springMvc. 关于MVC/SpringMVC springMvc是一个基于mvc模式的web框架,SpringMVC框架是一种提供了MVC(模型 - 视图 - 控制器)架

010Edit手写PE

前言PE结构DOS头IMAGE_DOS_HEADERPE头介绍总大小[248字节]结构体含义标记(4字节)0x4550文件头(20字节)扩展头(224字节)为程序添加ExitProcess函数 前言 最近,学习了PE知识,为了更深层的掌握PE结构,使用纯手工写一个PE小程序,只弹出一个MessageBox的小程序 内容:Hello World! PE结构 DOS头 IMAGE_DOS_HEADER 每一个PE文件是以一个DOS程序开始的,有了它,一旦程序在DOS下执行,DOS就能识别出这是有效的