位置: IT常识 - 正文

如何用VUE从零创建网站(如何使用vue)

发布时间:2024-01-15
如何用VUE从零创建网站 1. 如何建一个网站围绕主题,查看一些大型网站是如何设计的自己对主题有一定了解后,设计草图(包括功能、逻辑跳转、页面大致排版等)项目成员和老师对草图设计提出意见,再进行修改最后才到正式开发

网站推荐:

松果互联:免费高级WordPress主题/网站模版/UI KIT下载-WEIDEA(网站模板)

iconfont:iconfont-阿里巴巴矢量图标库 (阿里巴巴矢量图标库)

vant:Vant 3 - Mobile UI Components built on Vue (移动组件库)

element-ui:Element - The world's most popular Vue UI framework(组件库)

dataV:介绍 | DataV(大屏数据)

echarts:Examples - Apache ECharts(绘制图表)

RGB取色器:http://xiaohudie.net/RGB.html

在线颜色选择器:在线颜色选择器 | RGB颜色查询对照表(提供配色参考)

千图网:千图网-免费设计图片素材网站-正版图库免费设计素材中国 (查找高清大图)

2. 项目开发的准备工作

工具推荐:vue-cli、idea、git

脚手架介绍:vue的脚手架是什么_liulang68的博客-CSDN博客_vue脚手架是什么

idea中如何配置git:IntelliJ IDEA 如何配置git_春天里的水稻的博客-CSDN博客_idea配置git

中文版:git 使用简易指南 (bootcss.com)

英文版:Git - Book (git-scm.com)

2.1 vue-cli

可以利用vue的脚手架vue-cli搞定目录结构,本地调试,单元测试,热加载及代码部署

操作->在项目文件夹处cmd,然后用vue-ui指令唤起即可

推荐整理分享如何用VUE从零创建网站(如何使用vue),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:用vue做一个简单的项目,vue编写,vue从零开始,如何用vue从零创建组件,使用vue创建项目,用vue做一个简单的项目,如何使用vue,使用vue创建项目,内容如对您有帮助,希望把文章链接给更多的朋友!

2.2 git

① 先电脑下载配置git,idea上也配置好git

② 在github或gitee上创建项目仓库,做好密钥配置等等

③ 在本机创建文件夹,右击文件夹选择Git Bash Here、在输入git init来初始化仓库

常用git指令:

git分支:在开发新功能时,尽量把新功能放到新分支上,等搞完了再并入主分支

创造新分支:git checkout -b 分支名 (这里-b就是创造新分支,checkout就是切换到这个分支)

查看当前项目中的所有分支:git branch,打 *号的是我们所处的分支

合并分支:①先切换到主分支 git checkout master ② git merge 要合并的分支名

推送分支:直接git push (ps:云端一开始默认只有一个分支)

如果需要第一次推送云端没出现的分支,需要①切换到我想推送的分支 ②git push -u origin 远程分支名(如果云端有了这个分支,就不用写-u了)

拉取分支:如果是多人合作的项目,要先git pull从远程仓库拉取,才能再上传

查看目前文件状态:git status

向暂存区中添加文件:git add 文件名 或*

将文件从暂存区提交到仓库:git commit -m '语句描述'

查看各种版本的文件:git log (每个版本都有独特的一串代码,要恢复对应版本的,就用那个代码)

本地仓库回退:git reset

远程仓库回退:自行搜索...

2.3 常用插件

已安装插件:

运行依赖:(整个项目需要的插件和框架)

开发依赖:(一些测试工具、上线工具,是开发时需要使用的)

2.4 重要文件

src/main.js:引入更多的东西或做一些全局的处理工作

这里的东西的作用域是全局,所以引入css要慎重,可能会有样式冲突

一般import一些全局使用的东西,如css,js,以及router、axios等

src/router/index.js:路由跳转

当你想跳转到一个新的vue页面,需要在此处import你写的xxx.vue

src/plugins/element.js:按需导入要引用的组件,如element-ui库中的组件

src/assets:存放项目中需要用到的资源文件,css、js、images等

src/components:存放通用的组件

src/app.vue:使用标签<route-view></router-view>渲染整个工程的.vue组件。

我个人将它理解为该项目的根VUE实例

3. 实操经验3.1 如何发送指令

只是import axios无法在组件中使用axios

3.1.1 mixin混入来封装axios请求

下载axios插件(这个一般在创建项目的时候就会让你选择下载),全局混入(main.js)将影响每一个之后创建的Vue实例,在任何组件中使用该方法时只需要直接调用就好。

import axios from "axios";//引入axios// 创建一个全局mixinVue.mixin({ methods:{ $get(url,data){ return axios.get(url,{ params:data }) }, $post(url,data){ return axios.post(url,data) } }})

不用混入,写成这样也可以,只是调用的时候不能直接this.$get,而是this.$axios.$get

//将$axios挂在原型上,以便在实例中能用this.$axios能够拿到Vue.prototype.$axios = axios;3.1.2 在created中发送请求

在生命周期中执行created函数时,页面还未渲染,实例已完成以下配置:数据观测、属性和方法的运算,watch/event事件回调,完成了data 数据的初始化,但是挂载到dom上的阶段还没开始。

我一般会在created里调用获取数据的方法,因为在该生命周期可以调用methods中的方法,来改变data中的数据,并且修改可以通过vue的响应式绑定。此时页面还没有加载出来,我就已经向后端接口发送请求了。

created() { this.getData(); this.$scrollTo(); }, methods: { async getData() { let {data} = await this.$get( "http://xxx/xxx/xxx/" + this.query + "/" + this.page) this.content = data.company; this.sumRecords = data.totalRecords; if (this.sumRecords > 6) { this.hasMore = true; } this.loading = false; },3.1.3 使用async/await来处理异步

async的用法:async它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思。异步函数也就意味着该函数的执行不会阻塞后面代码的执行,async函数返回的是一个promise 对象。async 函数也是函数,平时我们怎么使用函数就怎么使用它,直接加括号 且 使用 .then的方法。

await的用法:简化promise,只要返回的数据部分

3.2 路由跳转3.2.1 路由传值 router-link<router-link to="/contactUs"> <i class="fa fa-phone"></i></router-link><router-link :to="{ path: '/retrieval', query: { query: suggestion } }" tag="a"></router-link>data() { return { //注意的是接收参数的时候是route而不是router query: decodeURI(this.$route.query.query) }

<router-link :to="...">等价与router.push()

3.2.2 路由传值 this.$router.push()

想要导航到不同的URL,使用router.push()方法,这个方法会向history栈添加一个新纪录,所以,当用户点击浏览器后退按钮时,会回到之前的URL

this.$router.push("/retrieval" + "?query=" + this.input);//传值this.$router.push({path:"/menLink",query:{alert:"页面跳转成功"}})//用query获取值<p>提示:{{this.$route.query.alert}}</p>3.3 组件基础3.3.1 组件复用

3.3.2 通过Prop向子组件传递数据<Industry_Company :industry_code="industryInfo.industry_code" :industry_name="industryInfo.industry" :query="query"></Industry_Company>export default { name: "Industry_Company", props: ['industry_code','industry_name','query'],}3.4 其他

$ 是在 Vue 所有实例中都可用的 property ,这样做会避免和已被定义的数据、方法、计算属性产生冲突。

Vue.prototype.$scrollTo = (x = 0, y = 0, type = 'smooth') => { window.scrollTo({ top: x, left: y, behavior: type // 滚动行为:smooth平滑滚动,instant瞬间滚动,默认值auto,等同于instant })}4. 如何上线4.1 在执行build命令期间移除所有的console

运行build时会生成dist目录(dist目录里的index.html),在上方的输出面板可以看到警告信息,注意build时是不允许代码有console的。安装开发依赖 babel-plugin-transform-remove-console,然后去babel.config.js的plugins数组里写上transform-remove-console

由于babel.config.js是全局共享的,我们希望项目发布阶段是要移除console,但是项目测试和开发阶段我们不希望移除console。所以定义process.env.NODE_ENV的值是production才移除console

//这是项目发布阶段需要用到的babel插件const prodPlugins = []//判断是开发还是发布阶段if(process.env.NODE_ENV ==='production'){ prodPlugins.push('transform-remove-console')}4.2 实现路由懒加载

路由懒加载:当路由被访问时才加载对应的路由文件,这样进入首页不用一次加载过多资源造成用时过长

安装开发依赖 @babel/plugin-syntax-dynamic-import在babel.config.js中
本文链接地址:https://www.jiuchutong.com/zhishi/296050.html 转载请保留说明!

上一篇:chatpdf使用说明(chat form)

下一篇:VS Code上搭建Vue开发环境(visual studio code怎么创建vue项目)

  • 微信究竟可以创造什么价值?(微信可以创号了吗)

    微信究竟可以创造什么价值?(微信可以创号了吗)

  • 怎么做微商(没有人脉怎么做微商)

    怎么做微商(没有人脉怎么做微商)

  • 荣耀30青春版指纹解锁在哪个位置(荣耀30青春版指纹怎么设置)

    荣耀30青春版指纹解锁在哪个位置(荣耀30青春版指纹怎么设置)

  • 荣耀30pro和mate30对比(荣耀30pro和mate30pro哪个值得买)

    荣耀30pro和mate30对比(荣耀30pro和mate30pro哪个值得买)

  • ai dual camera水印是什么手机(ai triple camera水印)

    ai dual camera水印是什么手机(ai triple camera水印)

  • mpeg4和mp4格式一样吗(mpeg4和mp4格式一样吗怎么打开)

    mpeg4和mp4格式一样吗(mpeg4和mp4格式一样吗怎么打开)

  • 苹果x控制中心下拉失灵(苹果x控制中心拉不出来是屏坏了吗)

    苹果x控制中心下拉失灵(苹果x控制中心拉不出来是屏坏了吗)

  • 侧面指纹的手机有哪些(侧面指纹的手机有哪几款)

    侧面指纹的手机有哪些(侧面指纹的手机有哪几款)

  • 苹果充电器原装和非原装什么区别(苹果充电器原装鉴别)

    苹果充电器原装和非原装什么区别(苹果充电器原装鉴别)

  • icloud云盘关还是不关(icloud云盘关闭后果)

    icloud云盘关还是不关(icloud云盘关闭后果)

  • 手机屏幕碎了可以修复吗(手机屏幕碎了可以自己换吗)

    手机屏幕碎了可以修复吗(手机屏幕碎了可以自己换吗)

  • 华为平板第一次充电多长时间(华为平板第一次正确充电方法)

    华为平板第一次充电多长时间(华为平板第一次正确充电方法)

  • 闲鱼单产品永久禁言是什么意思(闲鱼长期执行的期限是多少)

    闲鱼单产品永久禁言是什么意思(闲鱼长期执行的期限是多少)

  • opporeno摄像头升降有声音(opporeno摄像头升降是哪款)

    opporeno摄像头升降有声音(opporeno摄像头升降是哪款)

  • 局域网的三个主要特点(局域网的三个主要特征)

    局域网的三个主要特点(局域网的三个主要特征)

  • 声卡转换器起什么作用(声卡转化器的作用)

    声卡转换器起什么作用(声卡转化器的作用)

  • 华为手机屏幕左上角hd是什么意思(华为手机屏幕左边出现一条竖线)

    华为手机屏幕左上角hd是什么意思(华为手机屏幕左边出现一条竖线)

  • vivox30厚度(vivox30机身尺寸)

    vivox30厚度(vivox30机身尺寸)

  • 拼多多怎么取消月卡(拼多多怎么取消0元付款设置)

    拼多多怎么取消月卡(拼多多怎么取消0元付款设置)

  • 剪映怎么剪辑音乐长短(剪映怎么剪辑音频文件)

    剪映怎么剪辑音乐长短(剪映怎么剪辑音频文件)

  • 手机吃鸡怎么拉黑好友(手机吃鸡怎么拉人进房间)

    手机吃鸡怎么拉黑好友(手机吃鸡怎么拉人进房间)

  • 为什么soul不能改签名(为什么Soul不能改签名了)

    为什么soul不能改签名(为什么Soul不能改签名了)

  • wps格式刷在哪(wps格式刷的使用方法)

    wps格式刷在哪(wps格式刷的使用方法)

  • Vue 3.x基础(vue3.0用法)

    Vue 3.x基础(vue3.0用法)

  • 购买的携税宝费用怎么做账?
  • 新办企业购置设备怎么抵税
  • 增值税为10%的有哪些
  • 股东个人财产转让协议
  • 城建税和教育费附加减免政策
  • 财产和行为税合并申报
  • 车辆购置税计算器公式
  • 多交增值税怎么算
  • 防火门属于固定式防火风格
  • 季度所得税从业人员怎么填
  • 开票报税是什么意思
  • 增值税16点税降到13点,补缴税款怎么算
  • 生活服务费发票 经营范围
  • 增值税普通发票有什么用
  • 盘盈的存货一般作为什么处理
  • 列支会议费要求
  • 抵押贷款合同印花税怎么算
  • 交印花税合同金额怎么算
  • 增资需要登报吗
  • 商业折扣如何开票
  • 学校发票抬头类型填企业还是非企业
  • 未达起征点纳税申报表怎么填
  • 航空运输的湿租业务按什么缴纳增值税
  • 缴纳的社保费可以退吗怎么退
  • 结转实物发放的成本分录
  • 个税按计提申报还是按发放申报
  • 平销行为如何冲减进项税金
  • 1697508230
  • 社保银行扣款未扣怎么办
  • 境外投资亏损是否可以抵减境内盈利
  • 无法连接到移动网络小米
  • win10磁盘碎片整理打不开
  • 会计科目怎么调账
  • pytorch说明文档
  • echarts css
  • 公司支付的工伤赔偿金可以税前扣除吗
  • wordpress shortcode
  • php深度分析
  • 回迁房会被收回吗
  • 会计科目分类有几种方法
  • 麻雀优化算法和鲸鱼算法哪个好
  • php教程从入门到精通
  • 单位应缴住房公积金
  • 土方工程合同签了一般多久开工
  • 预收物业费纳税义务发生时间
  • pycharm cant find main
  • 小微企业可以不交税吗
  • 公司向个人支付居间费用
  • sql2008还原到2012
  • SqlServer 2005 T-SQL Query 学习笔记(2)
  • 个体工商户生产经营所得税税率表
  • 跨年预收账款被税局要求确认收入怎么交增值税
  • 差旅费用抵扣税款
  • 预缴增值税附加税需要计提吗
  • 打印银行电子回单有断号
  • 其他权益工具投资交易费用计入哪里
  • 研发费用按50%的预算
  • 买房定金转给销售有效吗
  • 管理费用如何结转成本
  • 公司支付给实习生的报酬如何税前扣除?
  • 公司返聘退休人员的员工比例有没有规定
  • 未取得发票的固定资产入账规定
  • 红字冲销法可能会涉及的摘要有
  • 无形资产的商誉是什么
  • 查找共享打印机所在的电脑
  • vista loader
  • vmware虚拟机安装Linux教程
  • vrvprotect.sys
  • 苹果mac最新的系统
  • linux系统中make的用法
  • cocos2d 网页
  • jquery双击
  • python中pandas.DataFrame排除特定行方法示例
  • jquery实现移动端
  • android使用so
  • js判断页面是否打开
  • jquery 插件写法
  • 如何查询车辆购买的保险是哪家保险公司
  • 嘉定办证中心营业时间
  • 欠税多久法院立案
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号