42·灵魂前端工程师养成-前端框架Vue初识

2022-11-08 17:06:41 浏览数 (1)

  • VUE起手式

  • 搭建Vue项目
  • 使用Vue
  • 插播SEO原理
  • 深入理解Vue两种版本

-曾老湿, 江湖人称曾老大。 -笔者QQ:133411023、253097001 -笔者交流群:198571640 -笔者微信:z133411023


-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。


VUE起手式


VUE历史

Vue主要是MVC中的V,M和C被简化了

版本 2013年,0.6版、0.7版 2014年,0.8-0.11版 2015年,1.0版 (MVVM框架) 2016年,2.0版 (MVC框架) 2019年,2.6版 2020年,3.0版


VUE文档

中文文档:TP

英文文档:TP

搭建Vue项目


创建项目

安装vue/cli

代码语言:javascript复制
# 安装 vue/cli两种方式
MacBook-pro:vue-1 driverzeng$ yarn global add @vue/cli

MacBook-pro:vue-1 driverzeng$ npm i -g @vue/cli

# 创建项目
MacBook-pro:HTML driverzeng$ vue create vue-demo-1

我们选择第二项 Manually select features 手动选择特性

选择红框中的4项

选择dart-sass

选择默认

提交的时候,运行lint

使用Jest单元测试

配置文件分开放

你是否要把刚才的选项,作为你以后项目的默认值,这里不推荐,所以写N

当你看到这两句话,就证明o**k了,然后按照命令执行

代码语言:javascript复制
MacBook-pro:HTML driverzeng$ cd vue-demo-1/
MacBook-pro:vue-demo-1 driverzeng$ yarn serve

就会起一个webpack-dev-server我们可以实时预览

我们先关掉 ,然后把项目打开,再运行yarn serve

打开就访问到这个页面了。

使用Vue


做一个项目

做一个最简单的项目,我们修改一下代码,让页面出现一个数字0,然后点 1就会自增

代码语言:javascript复制
<template>
  <div id="app">
    {{n}}
    <button @click="add"> 1</button>
  </div>
</template>

<script>
import HelloWorld from "./components/HelloWorld.vue";

export default {
  name: "app",
  data() {
    return {
      n: 0
    };
  },
  methods: {
    add() {
      this.n  = 1;
    }
  }
};
</script>

<style lang="scss">
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>


Vue单文件组件

首先创建一个demo.vue文件

vue项目默认需要 template script style

代码语言:javascript复制
<template>

</template>
<script>
export default {

};
</script>
<style scoped>

</style>

index.html

代码语言:javascript复制
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <link rel="icon" href="<%= BASE_URL %>favicon.ico">
  <title><%= htmlWebpackPlugin.options.title %></title>
</head>

<body>
  <noscript>
    <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
      Please enable it to continue.</strong>
  </noscript>
  <div id="app"></div>
  <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.11/vue.runtime.min.js"></script>
  <!-- built files will be auto injected -->
</body>

</html>

demo.vue

代码语言:javascript复制
<template>
  <div class="red">
    {{n}}
    <button @click="add"> 1</button>
  </div>
</template>
<script>
export default {
  data() {
    return {
      n: 0
    };
  },
  methods: {
    add() {
      this.n  = 1;
    }
  }
};
</script>
<style scoped>
.red {
  color: red;
}
</style>

main.js

代码语言:javascript复制
import Demo from "./demo.vue";
new Vue({
  el: "#app",
  render(h) {
    return h(Demo);
  },
});

上面的代码,SEO很不友好

插播SEO原理

SEO

搜索引擎优化,你可以认为搜索引擎就是不停的curl,搜索引擎会根据curl结果猜测页面内容。

如果你的页面都是用JS创建的div,那么curl就很瞎。

解决方法

很简单,给curl一点内容,把title,description,keyword,h1,a写好即可 原则:让curl能得到页面的信息,SEO就能正常工作

怎么让网页到第一名? 1.浏览的人足够多即可 2.百度花钱就能上第一,不信你搜【老男孩 大数据培训】 3.Google其实能获取JS创建的内容,但是不要依赖Google因为国内访问量还是少

深入理解Vue两种版本

Vue完整版

Vue非完整版

评价

特点

有complier

没有complier

complier占40%体积

视图

写在HTML里,或者写在template选项

写在render函数里用h来创建标签

h是尤雨溪写好传给render的

cdn引入

vue.js

vue.runtime.js

文件名不同,生成环境后缀为.min.js

webpack引入

需要配置alias

默认使用此版本

尤雨溪配置的

@vue/cli引入

需要额外配置

默认使用此版本

尤雨溪、蒋豪群配置的

最佳实践:总是使用非完整版,然后配合vue-loader和vue文件

思路: 1.保证用户体验,用户下载JS文件体积更小,但只支持h函数 2.保证开发体验,开发者可直接在vue文件里写HTML标签,而不是写h函数 3.脏活让loader做,vue-loader把vue文件里的HTML转成h函数真TM聪明,这就是工程师干的事

0 人点赞