以传统程序员看Vue2.X开发-极简速成

2023-05-16

一、开发环境搭建

     1、安装Node.js
      下载地址:https://nodejs.org/zh-cn/download/
       按提示安装,根据系统环境不同,可能需要安装C++Build和Python.

      验证

C:\Users\zhoujy>node --version
v14.15.0

C:\Users\zhoujy>npm --version
6.14.8

     2、安装Vue组件
      因直接使用npm国外源安装速度较慢,推荐使用国内淘宝源
      

npm config set registry https://registry.npm.taobao.org

#验证

npm config get registry

 安装Vue最新稳定版

# 最新稳定版
npm install vue

安装其他依赖包 

npm install webpack -g
npm install vue-router -g
npm install vue-cli -g

二、创建项目与结构

vue init webpack my-vueapp

? Project name vue-application1
? Project description descript
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? No
? Set up unit tests No
? Setup e2e tests with Nightwatch? No
? Should we run `npm install` for you after the project has been created? (recommended) npm

   vue-cli · Generated "VueApp1".


# Installing project dependencies ...
# ========================

npm WARN deprecated extract-text-webpack-plugin@3.0.2: Deprecated. Please use wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

added 1274 packages from 675 contributors in 43.558s

40 packages are looking for funding
  run `npm fund` for details


# Project initialization finished!
# ========================

To get started:

  cd VueApp1
  npm run dev

Documentation can be found at https://vuejs-templates.github.io/webpack

 目录结构

这时候项目已经可以运行,进入项目目录,运行

>npm run dev

DONE  Compiled successfully in 3221ms                                                                                                                                                                                                                                                                            下午3:27:02

 I  Your application is running here: http://localhost:8080

 浏览器访问  http://localhost:8080

三、创建第一个组件

     在compenonts目录下创建第一个组件FirstPart.vue 代码如下

<template>
  <div class="FirstPart">
    <h1>{{ msg }}</h1>
    <h2 class="FirstPart">{{msg}}</h2>
    <input type="text" v-model="msg">
  </div>
</template>
<script>
export default {
  name: 'FirstPart',
  data () {
    return {
      msg: 'Hello world!第一个自定义组件'
    }
  }
}
</script>
<style>

</style>

四、加入路由使其可以访问

打开router目录下index.js,添加路径 /FirstPart

import Vue from 'vue'
import Router from 'vue-router'
import VueResource from 'vue-resource'
import HelloWorld from '@/components/HelloWorld'
import FirstPart from '@/components/FirstPart'
import ReadRemoteData from '@/components/ReadRemoteData'

Vue.use(Router)
Vue.use(VueResource)
export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/FirstPart',
      name: 'FirstPart',
      component: FirstPart
    },
    {
      path: '/ReadRemoteData',
      name: 'ReadRemoteData',
      component: ReadRemoteData
    }
  ]
})

保存后,浏览器访问地址http://localhost:8080/#/FirstPart, 内容已可访问如下。

五、服务器异步数据交互

异步数据访问使用vue-resource,在项目目录下安装vue-resource包

npm install vue-resource

在components目录下,添加ReadRemoteData.vue组件。

<template>
  <div class="ReadRemoteData">
    请输入关键字:<input type="text" v-model="keyword" @keyup="sendJsonP(keyword)">
    <ul>
        <li v-for="r in result">{{ r }}</li>
    </ul>
    <FirstPart></FirstPart>
  </div>
</template>
<script>
import FirstPart from '@/components/FirstPart'
import Vue from 'vue'
import VueResource from 'vue-resource'
Vue.use(VueResource)
export default {
  name: 'ReadRemoteData',
  components: {
    FirstPart
  },
  data () {
    return {
      keyword: '',
      result: ''
    }
  },
  methods: {
      sendJsonP(keyword) {
        let url = 'https://www.baidu.com/sugrec?pre=1&p=3&ie=utf-8&json=1&prod=pc&from=pc_web';
        this.$http.jsonp(url, {
          params: {
            wd: keyword
          },
          jsonp: 'cb'//jsonp默认是callback,百度缩写成了cb,所以需要指定下                     }
        }).then(res => {
          if (res.data.g) {
            this.result = res.data.g.map(x => x['q']);
          } else {
            this.result = [];
          }
        });
      }
  }  
}
</script>

 同样在路由中加入路径例使其可访问,并且在这个组件中可以重用刚才创建的组件FirstPart。Vue的组件可以重用和嵌套使用非常的方便。保存后访问http://localhost:8080/#/ReadRemoteData,内容如下

六、Visual Studio 2019创建开发Vue项目

     1、Visual Studio 2019中导入node.js开发环境

       菜单:工具->获取工具和功能,选中 node.js开发

安装完成后,进入Visual studio 2019, 新建项目->基于Vue.js的Web应用程序

下一步后,创建。创建后,Visual studio会在后台自动用npm进行文件安装,根据网络情况等完成就可以运行了。还可以用解决方案进行包管理及添加组件、文件等管理。

       

七、极简原理

根据Vue规则书写的网页会被node.js编译成一个.jsp文件由浏览器来执行渲染成网页,如下

app.js部分内容,主要是函数库和生成网页的内容

/******/ (function(modules) { // webpackBootstrap
/******/ 	function hotDisposeChunk(chunkId) {
/******/ 		delete installedChunks[chunkId];
/******/ 	}
/******/ 	var parentHotUpdateCallback = window["webpackHotUpdate"];
/******/ 	window["webpackHotUpdate"] = 
/******/ 	function webpackHotUpdateCallback(chunkId, moreModules) { // eslint-disable-line no-unused-vars
/******/ 		hotAddUpdateChunk(chunkId, moreModules);
/******/ 		if(parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
/******/ 	} ;
/******/ 	
/******/ 	function hotDownloadUpdateChunk(chunkId) { // eslint-disable-line no-unused-vars

......

......

/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/ReadRemoteData.vue":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_FirstPart__ = __webpack_require__(\"./src/components/FirstPart.vue\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(\"./node_modules/vue/dist/vue.esm.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_resource__ = __webpack_require__(\"./node_modules/_vue-resource@1.5.1@vue-resource/dist/vue-resource.esm.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_2_vue_resource__[\"a\" /* default */]);\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n  name: 'ReadRemoteData',\n  components: {\n    FirstPart: __WEBPACK_IMPORTED_MODULE_0__components_FirstPart__[\"a\" /* default */]\n  },\n  data: function data() {\n    return {\n      keyword: '',\n      result: ''\n    };\n  },\n\n  methods: {\n    sendJsonP: function sendJsonP(keyword) {\n      var _this = this;\n\n      var url = 'https://www.baidu.com/sugrec?pre=1&p=3&ie=utf-8&json=1&prod=pc&from=pc_web';\n      this.$http.jsonp(url, {\n        params: {\n          wd: keyword\n        },\n        jsonp: 'cb' //jsonp默认是callback,百度缩写成了cb,所以需要指定下                     }\n      }).then(function (res) {\n        if (res.data.g) {\n          _this.result = res.data.g.map(function (x) {\n            return x['q'];\n          });\n        } else {\n          _this.result = [];\n        }\n      });\n    }\n  }\n\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVs

 执行npm run build时会在/dist目录下生成需发布的CSS jsp文件等,用webpack会更优发布的jsp库和资源等

 

最后希望微软出一个所见即所得的编辑环境,类似传统winFormApp程序,导入各种组件库把网页画好,加上一点事件驱动代码就可以运行了,前端一键开发,那微软定能重现VB时的辉煌! ^-^.

 

参考文档

1、https://cn.vuejs.org/

2、https://www.runoob.com/vue2/vue-tutorial.html

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以传统程序员看Vue2.X开发-极简速成 的相关文章

  • vue2的钩子函数

    一 定义 钩子函数是一个组件从引入到销毁的全过程中提供的函数 xff0c 我们可以在钩子函数中写我们自己的代码 xff0c 比如说请求数据 赋值 注册事件等 二 钩子函数类型 钩子函数按照组件生命周期分为 xff1a 挂载阶段 xff08
  • 使用 vue2+vue-router2+axios+es6+webpack2 完成的 SPA 个人简历

    使用es6 vue2 webpack2 vue router2 axios vue awesome swiper vue spinner SPA 完成的个人简历 访问地址 xff1a https github com vqlai vqla
  • 详解Vue2中的生命周期与钩子函数(Vue面试官必问系列)

    目录 一 概念 二 生命周期过程 1 流程图示 2 三阶段 三 钩子函数详解 1 beforeCreate 创建前 2 created 创建后 3 beforeMount 挂载前 4 mounted 挂载完成 5 beforeUpdate
  • Vue2.* computed property ' ' was assigned to but it has no setter.

    场景分析解决 场景 父组件传递了一个属性给子组件 xff0c 子组件需要在完成某个动作之后 xff0c 修改这个动作 当我将这个计算属性在computed处理后 再次修改的时候 xff0c 会有警告而且修改没有成功 computed pro
  • Vue中自定义指令是什么?有哪些应用场景?

    一 什么是指令 开始之前先学习一下指令系统这个词 指令系统是计算机硬件的语言系统 也叫机器语言 它是系统程序员看到的计算机的主要属性 因此指令系统表征了计算机的基本功能决定了机器所要求的能力 在vue中提供了一套为数据驱动视图更为方便的操作
  • vite创建vue2项目

    使用vite首先需要注意官方给出的兼容性注意 Vite 需要 Node js 版本 14 18 16 然而 有些模板需要依赖更高的 Node 版本才能正常运行 当你的包管理器发出警告时 请注意升级你的 Node 版本 1 初始化vite项目
  • Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)

    一 使用插件pdfh5预览pdf 参考文档 pdfh5 npm 项目相关依赖版本信息 预览效果如下图所示 1 上下滚动和缩放查看 2 左上角固定显示当前页码和总页数 3 右下角一键回到顶部按钮 4 在每页pdf上添加图片水印 安装插件 ya
  • Vue 中 CSS scoped 的原理

    前言 在日常的Vue项目开发过程中 为了让项目更好的维护一般都会使用模块化开发的方式进行 也就是每个组件维护独立的template script style 主要介绍一下使用
  • Vue(7)

    目录 插件 scoped样式 Todo list案例 插件 功能 用于增强Vue 本质 包含install方法的一个对象 install的第一个参数是Vue 第二个以后的参数是插件使用者传递的数据 定义插件 对象 install funct
  • 谷歌浏览器如何安装vue调试工具

    下载vue devtools压缩包 git地址 vue devtools 安装环境 将下载的压缩包解压 并通过命令行进入vue devtools master文件夹中 输入安装命令 cnpm install进行安装 编译 输入编译命令 np
  • Vue2(路由)

    目录 一 路由原理 hash 二 路由安装和使用 vue2 三 路由跳转 四 路由的传参和取值 五 嵌套路由 六 路由守卫 最后 一 路由原理 hash 单页应用的路由模式有两种 1 哈希模式 利用hashchange 事件监听 url的h
  • 【解决】JS中使用foreach循环,无法终止判断跳出循环;JS中使用try catch跳出foreach循环;浅谈JS深浅拷贝......

    问题 在foreach循环中有一个判断 需要在第一次符合该判断时跳出该循环 结果是未跳出 示例代码如下 this arr forEach item index gt if item uuid this uuid 会走多次该循环 此时使用re
  • vue跨域处理(vue项目中baseUrl设置问题)

    一 方法一 在公用文件common js中设置baseUrl export var baseUrl process env NODE ENV production window g ApiUrl api 该方法的优点 在项目打包时 stat
  • vue2.x与vue3.x中自定义指令详解

    目录 前言 一 自定义指令分类 二 Vue2 x自定义指令钩子函数 1 bind与update区别 2 update与componentUpdated区别 3 钩子函数的参数 4 局部自定义指令 5 全局自定义指令 6 简写形式 三 Vue
  • error:03000086:digital envelope routines::initialization error

    项目背景 前端vue项目启动突然报错error 03000086 digital envelope routines initialization error 我用的开发工具是vscode node版本是v18 17 0 前端项目版本如下
  • vue 组件通信方式你知道几种,这6种一定得掌握

    第一种props 适用于的场景 父子组件通信 注意事项 如果父组件给子组件传递数据 函数 本质其实是子组件给父组件传递数据 如果父组件给子组件传递的数据 非函数 本质就是父组件给子组件传递数据 书写方式 3种 todos type Arra
  • 若依框架项目部署后路由报错

    若依框架部署到服务器后 动态路由报错 无法访问 原因是有些版本不支持动态import导入 解决 找到 store modules permission js 将 import引入改为require export const loadView
  • 安装Node(脚手架)

    目录 一 安装node 脚手架 1 1 配置vue config js 1 2 vue cli3x的目录介绍 1 3 package json 最后 一 安装node 脚手架 从官网直接下载安装即可 自带npm包管理工具 https nod
  • vue 实时往数组里追加数据

    使用Vue set 以下来解读一下 Vue set this tableDatas this selected obj 1 this tableDatas是我们声明好的数组 以下是自定义数据 tableDatas id 1 caseName
  • vue2的了解

    目录 前言 一 性能优化 二 vue 1 keep live 2 vuex 3 v once 4 mixin 5 v if和v show 6 防抖和节流 7 promise 8 freez冻结数据 9 http状态码 10 重绘和回流 11

随机推荐