首页 > 其他分享 >Web客户端开发

Web客户端开发

时间:2023-03-10 16:34:45浏览次数:64  
标签:count Web Vue JavaScript 开发 props 组件 属性 客户端

Web开发工具

从高层次来看,可以将客户端工具放入以下三大类需要解决的问题中:

  • 安全网络 — 在代码开发期间有用的工具。
  • 转换 — 以某种方式转换代码的工具,例如将一种中间语言转换为浏览器可以理解的 JavaScript。
  • 开发后阶段 — 编写完代码后有用的工具,如测试和部署工具。

终端命令

  • 导航计算机的文件系统以及基本级别的任务,如创建、复制、重命名和删除:
    • 移动您的目录结构 : cd
    • 建立目录:mkdir
    • 创建文件(修改他们的原数据): touch
    • 复制文件:cp
    • 移动文件:mv
    • 删除文件或目录:rm
  • 下载在特定的 url 找到的文件:curl
  • 在较大的文件体中寻找特定的片段:grep
  • 主页查看文件的内容:less, cat
  • 操作和转换文本流(例如,讲 HTML 文件中的所有实例改为
    ): awk, tr, sed

一个非常有用的终端快捷方式是使用tab 键自动完成你知道的名字,而不是必须键入整个东西。例如,在键入以上两个命令后,尝试键入 cd D 并按下tab — 它应该自动完成目录名称 Desktop 对于您,只要它存在于当前目录中。在你前进的过程中记住这一点。

JSX

JSX,意为 JavaScript 和 XML, 是 JavaScript 的扩展,为 JavaScript 带来了类似 HTML 的语法。它由 React 团队发明,用于 React 应用程序,但也可用于开发其他应用程序——例如 Vue 应用程序。

const subject = "World";
const header = (
  <header>
    <h1>Hello, {subject}!</h1>
  </header>
);

vue jsx

import myComponent from './myComponent'
import './HelloWorld.css'

// 创建一个组件button
const ButtonCounter = {
  name: "button-counter",
  props: ["count"],
  methods: {
    onClick() {
      this.$emit("change", this.count + 1);
    }
  },
  render() {
    return (
      <button onClick={this.onClick}>数量 {this.count}+</button>
    );
  }
};
export default {
  name: 'HelloWorld',
  components: {
    myComponent 
  },
  data () {
    return {
      text:'hello 纸没了飞机',
      inputText:'我吃了',
      count: 0
    }
  },
  props: {
    msg: String
  },
  watch: {},
  methods: {
    onChange(val) {
      this.count = val;
      alert(this.count)
    }
  },
  render() {
  // const {text,inputText,count} = this //通过解构,下方return片段中就不需要this
    return (
    <div>
     <h3>内容</h3>
     {/* 纯文本 */}
     <p>hello, I am Gopal</p>
     {/* 动态内容 */}
     <p>{ this.text }</p>
     <p>hello { this.msg }</p>
     {/* 输入框 */}
     <input/>
     {/* 自定义组件 */}
     <myComponent/>
     <ButtonCounter
        style={{ marginTop: "10px" }}
        count={this.count}
        type="button"
        onChange={this.onChange}
      />
    </div>
    );
   }
}

VUE简单说明

<template> 包含了所有的标记结构和组件的展示逻辑。template 可以包含任何合法的 HTML

组件文件名及其在 JavaScript 中的表示方式总是用大写驼色(例如ToDoList),而等价的自定义元素总是用连字符小写(例如<to-do-list>)。

<script> 包含组件中所有的非显示逻辑,最重要的是, <script> 标签需要默认导出一个 JS 对象。该对象是您在本地注册组件、定义属性、处理本地状态、定义方法等的地方。在构建阶段这个包含 template 模板的对象会被处理和转换成为一个有 render() 函数的 Vue 组件。

props使组件动态化

<template>
  <div>
    <input type="checkbox" id="todo-item" checked="false" />
    <label for="todo-item">{{label}}</label>
  </div>
</template>

<script>
  export default {
    props: {
      label: { required: true, type: String },
      done: { default: false, type: Boolean }
    }
  };
</script>
  1. label的值应该是一个带有两个属性的对象(或者是props,因为它们被调用在可找到的组件的 context)
    1. 第一个 required 属性,它的值是 true. 这将会告诉 Vue 说,我们希望每个该组件的实例都必须有个 label 字段。如果 ToDoItem 组件没有 label 字段的话,Vue 会提示警告。
    2. 第二是添加一个 type 属性。这个属性的值设为 JavaScript 的 String 类型。这等于告诉 Vue,我们希望 type 属性的值是 String 类型的。
  2. 现在转向doneprop.
    1. 首先添加一个 default 属性,它的值是 false。这意味着当没有 done prop 被传递给 ToDoItem 组件时, done prop 的值会是 false(注意 default 属性不是必需的————我们只在非 required props 里才需要 default
    2. 接着,添加一个 type 属性,值为 Boolean。这将告诉 Vue,我们希望这个 prop 的值是 JavaScript 的 Boolean 类型。

调用时传递label参数

<to-do-item label="My ToDo Item"></to-do-item>

props 是一种单向数据绑定,组件永远不该改变自己的 props 的值,这点很重要。坚守这点的原因有很多。其一是,组件修改 props 会造成程序调试困难。如果一个值被传递进多个子组件,将很难定位这个值是在哪里被修改的。此外,修改 props 会造成组件重新渲染。所以,一个组件里突变的 props 会触发组件重新渲染,这可能会反过来再次触发 props 突变。

data() {
  return {
    key: value
  }
}

data 属性是一个函数。这是为了在运行时保持组件的每个实例的数据值是唯一的——为每个组件实例单独调用函数。如果将数据声明为仅一个对象,则该组件的所有实例将共享相同的值。这是 Vue 注册组件方式的副作用,也是你不想要的。

标签:count,Web,Vue,JavaScript,开发,props,组件,属性,客户端
From: https://www.cnblogs.com/ggonekim/p/17203833.html

相关文章

  • iTOP-RK3568开发板OTA升级包编译
    本节我们将编译三个版本的android镜像,V1.0.0版本、V1.0.1版本、V1.0.2版本,其中V1.0.0版本为基础版本用于烧写到rk3568开发板上,V.1.0.0升级到V1.0.1采用完全升级......
  • 【YonBuilder 移动开发】关于创建 App 是否需要 AVM 的经验分享
    概述开发者在使用YonBuilder移动开发技术,创建新项目的时候,通常都会有一个是否使用AVM的选项,见下图在Web网站控制台中创建应用的截图很多新手开发者可能都会有这样一......
  • 【WebRtc】获取媒体设备信息
    加载设备信息页面加载完设备信息页面Code/***加载当前设备的音视频信息*/initInnerLocalDevice(){letthat=this;//判断是否支......
  • WEB安全基础(二)SQL注入
    information_schema即信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。SQL注入的分类1.按......
  • TypeScript学习笔记#4 webpack的基础配置
    TypeScript学习笔记#4webpack的基础配置webpack是比较常用的打包工具,我们在打包ts的时候需要配置一些基础配置,同样,直接上代码//引入一个包constpath=require("pat......
  • JAVA WEB项目文件夹上传下载控件
    ​ 第一点:Java代码实现文件上传FormFilefile=manform.getFile();StringnewfileName= null;Stringnewpathname= null;StringfileAddre= "/numUp";try{......
  • Appium - 调试 webview
    webviewAndroid(6.0以上)需要打开webview调试开关if(Biuld.VERSION.SDK_INT>=Build.VERSION_CODES.KITKAT){WebView.setWebContentsDebuggingEnabled(true);}......
  • ABP 动态 WebApi 隐藏接口的方法(一)
    在ABP实际开发过程中既有可能会遇到不希望将某些方法暴露,那么就需要想办法将接口隐藏起来。方法一:通过修改修饰符实现。例如将方法修改为private,这种方式比较常用。但这......
  • 直播平台软件开发,uni-app实现选项卡功能
    直播平台软件开发,uni-app实现选项卡功能<viewclass="new-file">     <!--第一种方法-->  <!--头部选项卡--> <viewclass="head-nav"><view:class="n......
  • 互联网医院开发|线上问诊小程序好处有哪些?
    互联网医院可以通过互联网远程为患者提供常见病、慢性病复诊及健康咨询,并开具处方和配送药物等医疗服务。互联网医院建设分利用线上优势,可以为市民提供便捷的诊疗服务,减少不......