vue小程序开发(一) uni-app基本学习
npm install -g @vue/cli
vue create -p dcloudio/uni-preset-vue my-project
npm run dev:mp-weixin
根目录
进入目录 再导入
建立完成
目录结构
┌─uniCloud 云空间目录,阿里云为uniCloud-aliyun,腾讯云为uniCloud-tcb(详见uniCloud)
│─components 符合vue组件规范的uni-app组件目录
│ └─comp-a.vue 可复用的a组件
├─hybrid App端存放本地html文件的目录,详见
├─platforms 存放各平台专用页面的目录,详见
├─pages 业务页面文件存放的目录
│ ├─index
│ │ └─index.vue index页面
│ └─list
│ └─list.vue list页面
├─static 存放应用引用的本地静态资源(如图片、视频等)的目录,注意:静态资源只能存放于此
├─uni_modules 存放[uni_module](/uni_modules)规范的插件。
├─wxcomponents 存放小程序组件的目录,详见
├─main.js Vue初始化入口文件
├─App.vue 应用配置,用来配置App全局样式以及监听 应用生命周期
├─manifest.json 配置应用名称、appid、logo、版本等打包信息,详见
└─pages.json 配置页面路由、导航条、选项卡等页面类信息,详见
pages.json
用来注册页面,排在第一的页面是首页
{
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
//新增页面
{
"path": "pages/index2/index",
"style": {
//页面名,呈现在小程序上方
"navigationBarTitleText": "2"
}
},
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app"
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
}
}
支持小程序的rpx 和 h5的vm,vh
内置有sass的配置了 ,只需要安装对应的依赖即可
npm install sass-loader node-sass
sass版本和Node版本对应关系
![]()
如果出现版本报错,移步:
https://blog.csdn.net/xiakekeali/article/details/112766575
vue组件中,在style 标签上加入属性 <style lang = 'scss'>即可
index2/index.vue
<template>
<view class="content">
<view class="rpx">rpx</view>
<view class="vw">rpx</view>
<view class="sass">sass</view>
</view>
</template>
<script>
export default {
}
</script>
<style lang="scss">
.rpx{
/* rpx 小程序中的单位 750rpx = 屏幕的宽度 */
width :750rpx;
height: 100rpx;
background-color:aqua;
}
.vw{
/* vm h5单位 100vw = 屏幕的宽度 100vh = 屏幕的高度 */
width:50vw;
height: 50vh;
background-color: tan;
}
.content{
.sass{
background-color:red;
color:$uni-color-primary;
}
}
</style>
效果图
<!-- 使用数据 -->
<view>{{msg}}</view>
<view>{{money}}</view>
<view>{{isRich}}</view>
<view>{{person}}</view>
<view>{{person.name}}</view>
<view>{{person.skill}}</view>
<!-- 标签上通过属性的方式使用数据 -->
<view :data-color="color">color</view>
<script>
export default {
data(){
return{
//存放数据
msg:"黑马程序员",
//数字
money:100,
//boolean类型
isRich:false,
//对象
person:{
name:"孙悟空",
skill:"72变"
},
//颜色
color:"auqa",
//数组
list:[
{
id:0,
text:"苹果"
}
,
{
id:1,
text:"🍌"
}
,
{
id:2,
text:"🚗"
}
]
}
}
}
</script>
结果
<template> </template>中
<view>==========================</view>
<view v-for="(item,index) in list" :key="item.id">
{{item.id}} --
{{item.text}}--
{{index}}
</view>
<script>
export default {
data(){
return{
//数组
list:[
{
id:0,
text:"苹果"
}
,
{
id:1,
text:"🍌"
}
,
{
id:2,
text:"🚗"
}
]
}
}
}
</script>
运行结果
<template> </template>中
<view>==========================</view>
<view>
<view v-if="true">v-if </view>
<view v-show="false">v-show</view>
</view>
效果
<template> </template>中
<view>$ {{money}}</view>
<view>{{cnMoney}}</view>
<script>
export default {
data(){
return{
money:100
}
},
//计算属性
computed:{
//直接把 cnMoney看成是再data中的普通的数据一样来使用即可
cnMoney(){
//$ 1000
return "$"+ this.money;
}
}
}
</script>
<template> </template>中
<view>
<view v-for="(item,index) in filterList"
:key="item.id">
{{item.text}} -- {{index}}
</view>
</view>
<script>
export default {
data(){
return{
list:[
{
id: 0,
text:"苹果"
}
,
{
id: 1,
text:"🍌"
}
,
{
id: 2,
text:"🚗"
}
]
}
},
//计算属性
computed:{
//过滤数组
filterList(){
//只要id > 0 都不要
return this.list.filter(v=>v.id<= 0);
}
}
}
</script>
结果
v-for 和 v-if 不建议一起使用,建议用computed
如何拿到标签中的属性
<template>
<view class="content">
<view data-index="11" @click="handleClick(1,$event)">点击我试试1</view>
<view data-index="22" @click="handleClick(2,$event)">点击我试试2</view>
</template>
<script>
export default {
methods:{
handleClick(index,event){
console.log(index);
console.log(event);
}
}
}
</script>
那么如何调用属性中自定义的index呢??
handleClick(index,event){
console.log(index);
console.log(event);
console.log(event.currentTarget.dataset.index);
}
组件的定义
组件的引入
组件的注册
组件的使用
定义
<template>
<image class= "img-border" src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fwww.yygx.net%2FfileYYGX%2Fjournal%2Farticle%2Fyygx%2F2020%2F3%2F9257-1.jpg&refer=http%3A%2F%2Fwww.yygx.net&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1640596226&t=6b86c267d92c15be48a1816dc1a005d7">
</image>
</template>
<script>
export default {
}
</script>
<style>
.img-border{
border-radius: 50%;
}
</style>
引入-注册-使用
<template>
<view class="content">
<!-- 4 使用组件 -->
<img-border></img-border>
</view>
</template>
<script>
//2 引入自定义组件
import imgBorder from "@/components/img-border"
export default {
//3 注册组件
components:{
imgBorder
}
}
</script>
<style lang="scss">
</style>
效果
结果
假如想项目一启动时,就做一些定义数据
就可以找到main.js
App.vue中定义
my-form.vue
<template>
<view class="form">
<view class="form_title">标题</view>
<view class="form_content">内容</view>
</view>
</template>
<script>
export default {
}
</script>
<style>
</style>
index6/index.vue
<template>
<view class="content">
<my-form>
<view>
<input type="text">
<radio></radio>
<checkbox></checkbox>
</view>
</my-form>
</view>
</template>
<script>
import myForm from "@/components/my-form"
export default {
components: { myForm },
}
</script>
<style lang="scss">
</style>
text文本框并没有显示出来, 这就需要在组件里面写一个占位符(即插槽)
应用 指的是 App.vue
页面
组件
结果
uniapp生命周期详解链接
https://uniapp.dcloud.io/frame?id=%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f
微信生命周期
vue生命周期
终端运行
npm run dev:mp-weixin
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
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
我想用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中编写命令行实用程序
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行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
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?