vue-2

vue-cli的安装

vue-cli是一个脚手架工具,它集成了诸多前端技术,包括但不仅限于:

webpackbabeleslinthttp-proxy-middlewaretypescriptcss pre-prosessorcss module、...

这些工具,他们大部分都要依赖两个东西:

  • node环境:很多工具的运行环境
  • npm:包管理器,用于下载各种第三方库

安装node

下载node:https://nodejs.org/zh-cn/

bash 复制代码
# 打开终端,查看node和npm版本,验证是否安装成功:
node -v
npm -v

配置源地址

默认情况下,npm安装包时会从国外的地址下载,速度很慢,容易导致安装失败,因此需要先配置npm的源地址

使用下面的命令更改npm的源地址为淘宝源

bash 复制代码
npm config set registry http://registry.npm.taobao.org/
# 更改好了之后,查看源地址是否正确的被更改
npm config get registry

安装vue-cli

bash 复制代码
npm install -g @vue/cli
# 安装好之后,检查`vue-cli`是否安装成功
vue --version

新建 vue 项目

新建个文件夹并在此文件夹下执行

bash 复制代码
vue create 工程名

注意:工程名只能出现英文、数字和短横线

选择第三个手动

引入路由

路由安装

bash 复制代码
npm i vue-router@^3.5.1 -s 

如果先安装了高版本的,再执行上面的命令好像还是高版本,这时候可以把 package-lock.json 文件删除,并在 package.json 文件手动修改路由的版本为 3.5.1 修改之后下面会有波浪线,鼠标放上去会提示安装

建立 index.js 文件

新建 router 文件夹 里面新建 index.js

js 复制代码
import Vue from 'vue';
import VueRouter from "vue-router";
import Main from '@/components/Main.vue';

Vue.use(VueRouter);

export default new VueRouter({
    //tips:不想要 #(锚点)就添加下面代码
    mode:'history',
    routes: [
        {
            path: '/main',
            name: 'main',
            component: Main // 使用 Main 组件作为此路由的视图
        },
        // 其他路由...
    ]
});

main.js 中引入路由

js 复制代码
//这种直接写 vue 没有写.或者..的形式,一般是从 node_modules 中找
import Vue from 'vue'
import App from './App.vue'
import router from '@/router';
Vue.config.productionTip = false
new Vue({
  router,
  render: h => h(App),
}).$mount('#app')

路由的使用

路由的使用,去掉了样式

<span class="name" @click="toDetail(data)">{{ data.cname }}

this.$router.push({})

js 复制代码
<template>
  <div class="channel">
    <!--Item组件接收一个名为isActive的prop,用来表示该项是否处于激活状态。-->
    <!--同时,当Item组件触发active事件时,会通过$emit方法向上层组件发送一个名为active的自定义事件。-->
    <Item :isActive="isActive" @active="$emit('active')">
      <div class="inner">
        <span class="name" @click="toDetail(data)">{{ data.cname }}</span>
        <span class="number">{{ data.glist.length }}</span>
      </div>
    </Item>
  </div>
</template>
<script>
import Item from "@/components/Item.vue";

export default {
  props: {
    isActive: {
      type: Boolean,
      default: false
    },
    data: {
      type: Object,
      default: function () {
        return {}
      }
    }
  },
  components: {
    Item
  },
  methods: {
    async toDetail(data) {
      if (data && data.glist && Array.isArray(data.glist)) {
        // let names = data.glist.map(item => item.tools[0].title);
        let names = data.glist[0].tools.map(item => item.title);
        console.log(names)//names = ["工具1", "工具2", "工具3"]
        await this.$router.push({
          name: 'main',
          query: {
            detail: names
          }
        });
      } else {
        console.log(data.cname)
        console.error('Data or glist is not in the expected format.');
      }
    }
  }
}
</script>

路由参数接收

js 复制代码
<script>
export default {
  data() {
    return {
      detail: '初始内容',
    }
  },
  created() {
    // ["工具1", "工具2", "工具3"]
    this.detail = this.$route.query.detail;
  },
  watch: {
    '$route.query.detail': {
      immediate: true, // 确保在初始加载时也执行
      handler(newDetail) {
        this.detail = newDetail;
      },
    },
  }
}
</script>

引入 ElementUI

官网:https://element.eleme.cn/#/zh-CN/component/quickstart

安装

bash 复制代码
npm i element-ui -S

main.js 使用

js 复制代码
import Vue from 'vue'
import App from './App.vue'
import router from '@/router';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.config.productionTip = false
Vue.use(ElementUI);
new Vue({
  router,
  render: h => h(App),
}).$mount('#app')

然后就可以在 vue 页面使用了

例子:

相关推荐
IT_陈寒2 小时前
Python开发者必知的5大性能陷阱:90%的人都踩过的坑!
前端·人工智能·后端
codingWhat3 小时前
介绍一个手势识别库——AlloyFinger
前端·javascript·vue.js
Lee川3 小时前
深度拆解:基于面向对象思维的“就地编辑”组件全模块解析
javascript·架构
代码老中医3 小时前
2026年CSS彻底疯了:这6个新特性让我删掉了三分之一JS代码
前端
进击的尘埃3 小时前
Web Worker 与 OffscreenCanvas:把主线程从重活里解放出来
javascript
不会敲代码13 小时前
Zustand:轻量级状态管理,从入门到实践
前端·typescript
踩着两条虫3 小时前
VTJ.PRO 双向代码转换原理揭秘
前端·vue.js·人工智能
扉川川3 小时前
OpenClaw 架构解析:一个生产级 AI Agent 是如何设计的
前端·人工智能
远山枫谷3 小时前
一文理清页面/组件通信与 Store 全局状态管理
前端·微信小程序
codingWhat3 小时前
手撸一个「能打」的 React Table 组件
前端·javascript·react.js