草庐IT

做一个纯前端小程序,只需要简单几步

中二少年学编程 2023-04-09 原文

前段时间某神秘企业员工被禁止拥有自媒体,所以如果大家在盗版网站或者某条看到这篇文章,而且昵称还叫什么泽哥**钊,不用慌,就是我!!!

我这技术这么烂,也要被限制,辛苦某某部门了。也不知道啥时候禁止我发博客。后续准备出一个详细版的小程序专栏。适合零基础同学。

———————————以下是正文—————————————

最近有人私信我小程序怎么做,报价是多少之类的话题。

首先明确一点,我肯定是不会接普通的私活,帮老板做经营性质的小程序,我想要做的是合作共赢的方式,具体细节有时间可以重开一篇文章详细讲讲诸如此类的话题:为什么有些人做小程序可以那么便宜,有些人却表示做不了。高喊着家人们不要当韭菜的商家,究竟有没有趁机割韭菜?

本篇的重点是如何最快捷地做一个只包含前端的小程序。

做小程序,你都需要准备什么

第一步:确定技术栈

不论哪种技术,只要能在市场中占据一席之地,那它必然有过人之处,只要还没有完全掌控市场,那它也必然有缺陷。所以一般拿技术栈来斗嘴的,大部分是大学生或者小公司职工,为啥?因为稍微上点规模的企业里,你没得选。

企业用啥你就得用啥,平台都是搭好的,技术可选择性只有面向不同场景的A和B,不会同一场景,让你去做多选。

我的技术栈选型是:uniapp+uview,工具是hbuilder+微信开发者工具。做工具类、信息展示类、动画交互类的小程序其实都可以不需要后端服务,当然我是因为服务器备案还没通过,没办法在生产环境部署后端。如果需要做后端服务,我选java或者nodejs,一个图稳,一个图爽。

第二步:准备必要的开发环境

这里只阐述重点环节,具体操作就不展开描述了。因为这些乱七八糟的其实并没有技术含量,但是篇幅可能还不短,自行百度或者根据官网去一步步做好就行。大致需要:

  1. hbuilder的appid:每使用hbuilder创建一个项目都需要生成一个,这是hbuilder创建的,用于项目发布成app时需要填写的唯一标识。

  2. 微信小程序的appid:这是微信公众平台上申请的,配套的还有一个appSecret,用于在微信小程序系统内,为你的小程序做唯一标识。

  3. 微信公众号平台:使用邮箱申请账号,确定账号类型为小程序,然后设置自己的微信号为管理员,小程序账号绑定的是邮箱,管理员绑定的是微信号,即一个邮箱对应一个小程序,一个微信号可以管理多个小程序。

  4. hbuilder中配置:配置微信开发者工具运行路径,方便直接运行到开发者工具中查看真机效果等。

  5. 微信开发者工具配置:主要配置右上角的详情,如图:

被我红色抹掉的,就是需要手动配置的。然后是本地配置,下图是我的配置可作参考,再看一眼设置里的服务端口有没有打开:

至此,与真正开发无关的准备工作已经完毕。

uniapp开发小程序

  1. 使用hbuilder创建空项目,vue版本建议选择vue2,decloud官网有一些模板项目,如果需求接近,也可以作为参考:

如果按照官网都配置好,那这个最简单的小程序就已经完成了。

创建项目后,直接运行在微信开发者工具,如果报错:Cannot read property ‘forceUpdate’ of undefined,说明微信小程序的appid没有配置,把自己申请的小程序appid拿过来,就能运行成功。

我用自己微信申请了一个测试号,编译然后真机运行,它是这样的:

打开过一次后,可以在小程序搜索页找到我们的测试小程序,如图:

至此,一个最简单的,只有一个页面的小程序就完成了。如果只是做个简单的企业展示页、小商店的活动信息展示之类的静态页面,那无非是多设计几个页面而已。

** 完结,撒花!!!**各位只需要展示页面的看官老爷可以离场了

如果你还有理想,想要实现更复杂的小程序,那么请继续阅读,一个项目级小程序还需要做哪些配置。

  1. 修改基础的配置文件和入口文件:

如果没有vue基础,建议只完成用作展示的静态页面就好,如果需要开发稍微复杂的逻辑,请先打好基础。

最好把es6、html、css这些都熟悉了,因为es6是理解模块化引入、promise对象、各种新语法的基础,html、css是修改组件的基础,uniapp和uview两个组件库有坑,尤其是uview框架,想要实现好的效果,经常需要修改源码。

配置文件要点:

  • pages.json:需要进行路由跳转的页面都需要在这里配置。

  • main.js:全局挂载的js工具都需要在这里配置。我的示例代码如下,为了方便浏览,删除了部分特例代码,整体分为三部分:引入资源(import)、挂载资源(prototype)、按要求使用插件(use),理解有困难就把我代码抄过去,增增减减做一个自己的,不过我觉得我用到的已经是开发必备的工具类了。

import Vue from 'vue'
import App from './App'
import lodash from 'lodash'
import uviewAdapter from '@/common/util/uview-adapter';

// vuex
import store from './store'

// 引入全局uView
import uView from '@/uni_modules/uview-ui'

import mixin from './common/mixin'
import * as config from './common/config.js'
import {
	util
} from './common/util.js' //自己写的工具类

//引入的资源挂载到全局属性上
Vue.prototype.$store = store
Vue.prototype.$util = util
Vue.prototype.$config = config
Vue.prototype._ = lodash
Vue.prototype.$uview = uviewAdapter

Vue.config.productionTip = false

App.mpType = 'app'
Vue.use(uView)

Vue.mixin(mixin)

const app = new Vue({
    store,
    ...App
})
// 引入请求封装
require('./common/request/index')(app) 

app.$mount()
  1. app.vue:需要按照uview的要求增加两个全局样式,代码如下:
<style lang="scss">

/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */

@import "@/uni_modules/uview-ui/index.scss";

@import "@/common/css/ui/uni-my.scss"

</style>
  1. 基本配置完成后,需要写一些自己的工具类、请求拦截、响应拦截这些,篇幅过长,不展开讲解了,参考uview和uniapp官网自行配置吧。

项目实战

我们把所有的环境准备、代码准备、工具准备等等工作都完成了,剩下的无非就是写代码逻辑了,对于大部分程序员来说,这应该是最熟悉的吧。

因为小程序正式上线,后端服务必须是备案过的域名,我的私人备案审核还没结果,所以也只能做些不需要后端的小工具了。

依托上面搭好的架子,我这两周抽时间做了两个小工具,

第一个工具——翻译工具:

支持简体中文、繁体中文、英文、韩文、日文之间的互译,大家可以微信搜索**“李泽的工具包”**自行体验,如图所示:

第二个工具——时间戳转换:

当前时间转换为时间戳,选择时间转换为时间戳,同样搜索**“李泽的工具包”**可体验,如图所示:

大家如果有什么建议,或者平时想用的小工具,但是又都需要收费,可以私信或者评论区留言,我会综合考虑时间成本、价值之后,决定是否采纳并开发。

有关做一个纯前端小程序,只需要简单几步的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby - 如何指定 Rack 处理程序 - 2

    Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

  3. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  4. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  5. ruby-on-rails - 渲染另一个 Controller 的 View - 2

    我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>

  6. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  7. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  8. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  9. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  10. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

随机推荐