当前位置: 首页 > news >正文

做那种网站赚钱活动推广方案

做那种网站赚钱,活动推广方案,做网站有现成的程序,如何在网站做推广一、响应式数据 1.ref ref可以定义 基本类型的响应式数据#xff0c; 也可以定义对象类型响应式数据 templateh1{{ name }}/h1button clicktest修改姓名/button /templatescript setup langts 也可以定义对象类型响应式数据 templateh1{{ name }}/h1button clicktest修改姓名/button /templatescript setup langts import { ref } from vuelet name ref(zhansan)function test(){name.value 张三 }/script 注意 1.响应式数据必须使用ref进行修饰 2.在template引入响应式数据时直接引入变量名即可 3.修改ref修饰的响应数据的值时必须使用 变量.value才能修改 2.reactive reactive是定义对象类型的响应式数据 templateh1{{ obj.name }}/h1button clicktest修改姓名/button /templatescript setup langts import { reactive } from vuelet obj reactive({name: zhangsan})function test(){obj.name 张三 }/script 注意reactive 如果重新进行赋值那么原来的对象就会失去响应式 reactive修改值的内容不需要使用 .value 3.选择原则 如果数据式对象类型层级不深两个都可以。如果层级深推荐使用reactive 4.toRefs 先看实例此时发现name的值变化了但是模板中的值没有改变。 这是因为obj在解构后name就不是响应式的数据了。 templateh1{{ name }}/h1button clicktest修改姓名/button /templatescript setup langts import { reactive, toRef } from vuelet obj reactive({name:zhangsan}) let { name } objfunction test(){name 张三alert(name) }/script 修改后成功了包括obj的数据也变化了 templateh1{{ name }}/h1h1{{ obj.name }}/h1button clicktest修改姓名/button /templatescript setup langts import { reactive, toRefs } from vuelet obj reactive({name:zhangsan}) let { name } toRefs(obj)function test(){name.value 张三 }/script 二、基础指令 v-xxx的指令有很多这里只介绍一些常用的指令 1.v-if v-if是条件渲染指令它根据表达式的true和false来删除和插入元素它的基本语法如下v-if“表达式” templateh1 v-ifdata11/h1 h1 v-ifdata22/h1 h1 v-ifdata3 18成年人/h1/templatescript setup langtslet data1 true let data2 false let data3 20/script2.v-show v-show也是条件渲染指令和v-if指令不同的是v-show不会删除html元素而是将它得属性设置为style“display: none;” template h1 v-showdata11/h1 h1 v-showdata22/h1 h1 v-showdata3 18成年人/h1/templatescript setup langtslet data1 true let data2 false let data3 20/script3.v-else v-else就是v-if得继续。 注意v-else元素必须立即跟在v-if元素的后面——否则它不能被识别。 template h1 v-ifdata1data1:true/h1 h1 v-elsedata1:false/h1h1 v-ifdata2data2: true/h1 h1 v-elsedata2: false/h1/templatescript setup langtslet data1 true let data2 false/script4.v-for 4.1 遍历数组 注意 key“index” 尽量带上。主要目的是为了识别每个节点得唯一标识.有了标识就能够更高效准确得更新虚拟DOM templateh3 v-for(item,index) in arr :keyindex{{ item }},{{ index }}/h3 /templatescript setup langtslet arr [zhangsan,lisi,wangwu]/script4.2 遍历对象 templateulli v-for(value,key,index) in object :keyindex{{ value }},{{key}}{{index}}/li/ul /templatescript setup langtslet object {name: zhangsan,age:20,gender: boy}/script4.3 遍历对象数组 templateulli v-for(value,index) in object :keyindex{{ value.name }}{{index}}/li/ul /templatescript setup langtslet object [{name: zhangsan,age:20,gender: boy},{name: lisi,age:21,gender: boy},{name: wangwu,age:22,gender: boy},]/script5.v-bind 1.v-bind得简写是 “冒号” 2.v-bind 其实就是让标签得属性 绑定一个 变量 而不是 字符串 先看一个实例a标签绑定得herf属性被识别成了字符串而不是一个变量 templatea hrefbaidu百度一下/a /templatescript setup langtsconst baidu http://www.baidu.com/script此时就需要使用v-bind进行变量绑定。 templatea :hrefbaidu百度一下/a /templatescript setup langtsconst baidu http://www.baidu.com/script6.v-on v-on指令用于监听事件简写为 6.1 鼠标点击事件 templateel-button typesuccess v-on:clicksend完整写法/el-buttonel-button typesuccess clicksend简写/el-button/templatescript setup langts import { ElMessage } from element-plus;function send(){ElMessage({type: success,message: hello}) }/script6.2 传值得点击事件 templateh1{{ sum }}/h1el-button typesuccess clicksum11/el-buttonel-button typesuccess clicksum10(10)10/el-button/templatescript setup langts import { ref } from vuelet sum ref(0)function sum1() {sum.valueconsole.log(sum.value) }function sum10(num:number) {sum.valuenumconsole.log(sum.value) }/script7.v-model 数据双向绑定在Vue.js中可以使用v-model指令在表单元素上创建双向数据绑定。 v-model只收集表单的数据别的标签不起作用。 完整写法v-model:value“text” 简写 v-modeltext 这里可以看出v-model是针对input 的value属性进行处理 templateh1{{ text }}/h1input typetext v-modeltext styleposition: absolute;top:100px;/templatescript setup langts import {ref} from vuelet text ref()/script 三、计算属性computed computed的好处就是被计算的数据发生变化结果也会发生变化 template h1{{ x }}/h1 button clickx加1/buttonh1{{ y }}/h1 button clicky加1/buttonh1{{ sum }}/h1/templatescript setup langts import {computed, ref,toRef} from vuelet x ref(1) let y ref(2)# 这里使用computed 方法进行数据的计算 let sum computed(() {return x.value y.value })/script四、watch 1.作用 监视数据的变化 2.特点 vue3中的watch只监控以下四种数据 1 ref定义的数据 2.reactive定义的数据 3.函数返回一个值 4.一个包含上述内容的数组 3.watch-ref数据 注意点 1.监视的数据(sum)不用写.value 2.回调函数有两个参数第一个是变化的新值第二个是变化之前的旧值 3.在回调函数中可以直接调用watch的返回值来停止watch的监视 template h1sum的和是: {{ sum }}/h1 button clickchangeSumsum加1/button/templatescript setup langts import { ref,watch } from vuelet sum ref(0)function changeSum(){sum.value 1 }let stopWatch watch(sum,(newVlue,oldValue) {console.log(newVlue)if (newVlue 10) {stopWatch()} })/script 4.watch-reactive数据 注意 1.修改了对象的人一一个值都可以触发watch 2.newValue,oldValue值是一样的都是显示修改后的值。 template h1姓名: {{ obj.name }}/h1 button clickchangename点我修改姓名/buttonh1年龄{{ obj.age }}/h1 button clickchangeage点我修改年龄/button/templatescript setup langts import { reactive,watch } from vuelet obj reactive({name: zhangsan,age: 20})function changename(){obj.name 张三 }function changeage(){obj.age }watch(obj,(newValue,oldValue){console.log(变化了)console.log(newValue,oldValue)})/script 所以监视器可以简写为回调函数的形参只写一个就可以了 let stop watch(obj,(newValue){if (newValue.age 30){stop()console.log(停止监视)} })5.监视对象某个属性 在4中监视的是整个对象如果对象中属性特别多需要只监控某一个属性。 方法如下将监控对象的参数 以函数的形式编写。 实例如下 5.1 监控普通属性 template h1姓名{{ persion.name }}/h1 button clickchangeName修改姓名/buttonh1汽车: {{ persion.car.c1 }},{{ persion.car.c2 }} /h1 button clickchangeC1修改汽车1/button button clickchangeC2修改汽车2/button button clickchangeAll修改所有汽车/button/templatescript setup langts import { reactive, watch } from vuelet persion reactive({name: zhangsan,car:{c1: 长城,c2: 大众} })function changeName(){persion.name ~ }function changeC1(){persion.car.c1 奔驰} function changeC2(){persion.car.c2 奥迪} function changeAll(){persion.car {c1:宝马,c2:丰田} }// 监视普通类型属性 watch(() { return persion.name },(newValue,oldValue){console.log(newValue,oldValue) })/script 5.2 监视对象属性 template h1姓名{{ persion.name }}/h1 button clickchangeName修改姓名/buttonh1汽车: {{ persion.car.c1 }},{{ persion.car.c2 }} /h1 button clickchangeC1修改汽车1/button button clickchangeC2修改汽车2/button button clickchangeAll修改所有汽车/button/templatescript setup langts import { reactive, watch } from vuelet persion reactive({name: zhangsan,car:{c1: 长城,c2: 大众} })function changeName(){persion.name ~ }function changeC1(){persion.car.c1 奔驰} function changeC2(){persion.car.c2 奥迪} function changeAll(){persion.car {c1:宝马,c2:丰田} }// 监视对象类型属性并且开启深度监视。深度监视的含义就是监视car对象中的每个属性。 // 如果不开启深度监视只能是car整个对象变化的的时候才能监视到 watch((){return persion.car},(newValue,oldValue){console.log(newValue,oldValue)},{deep:true} ) /script 6.监听多个属性 监听多个属性要写成箭头函数数组的形式 template h1姓名{{ persion.name }}/h1 button clickchangeName修改姓名/buttonh1汽车: {{ persion.car.c1 }},{{ persion.car.c2 }} /h1 button clickchangeC1修改汽车1/button button clickchangeC2修改汽车2/button button clickchangeAll修改所有汽车/button/templatescript setup langts import { reactive, watch } from vuelet persion reactive({name: zhangsan,car:{c1: 长城,c2: 大众} })function changeName(){persion.name ~ }function changeC1(){persion.car.c1 奔驰} function changeC2(){persion.car.c2 奥迪} function changeAll(){persion.car {c1:宝马,c2:丰田} }watch(// 监听多个属性要写成箭头函数数组的形式[ () persion.name,()persion.car.c1 ],(newValue,oldValue){console.log(newValue,oldValue)},{deep:true} ) /script 五、watchEffect watcheffect的好处就是不用指定监视对象直接编写处理逻辑就可以了非常的方便 template h1sum的和: {{sum}}/h1 button clicksumsum加1/button/templatescript setup langts import { ref,watchEffect } from vuelet sum ref(0)watchEffect((){if(sum.value 10 ){console.log(sum是一个大于10的数字) } })/script 六、标签的ref属性 ref属性是能够定位html元素的属性,相当于id或者class定位的作用 template h1张三/h1 h1 reft1李四/h1button clickshow查看/button/templatescript setup langts import {ref} from vuelet t1 ref()function show(){console.log(t1.value) } /script 七、组件生命周期 vue3和vue2生命周期略有不同 生命周期函数作用onBeforeMount()组件挂载到节点上之前执行onMounted()组件挂载完成后执行onBeforeUpdate()组件更新之前执行onUpdated()组件更新完成后执行onBeforeUnmount()组件卸载之前执行onUnmounted()组件卸载完成后执行 1.创建test子组件 这里测试onBeforeMount函数 templateh1我是test组件/h1 /templatescript setup import { onBeforeMount,onMounted } from vueonBeforeMount((){console.log(挂载前)// 这是开启debug模式程序到这里就不会在继续运行了debugger })/script2.引入test子组件 在app.vue中引入组件 templateh1我是app.vue/h1// 引入test子组件test/test /templatescript setup import test from ./components/test.vue/script 3.验证结果 发现子组件的的结果没有在app.vue中显示但是onBeforeMount函数中的输出已经控制台输出了 八、Pinia集中式状态管理库 1.安装 pnpm install pinia2.引入pinia 在main.ts中引入pinia import { createPinia } from piniaconst store createPinia() app.use(store) 3.创建数据仓库 在src下创建store/“数据文件.ts”。这里用于测试的文件是userInfo.ts 3.1 定义数据 在userinfo.ts文件中定义数据。 definStore有两个参数第一个参数式一个key尽量和文件名保持一致。第二个参数就定义的数据 import { defineStore } from piniaexport const userInfoStore defineStore(userInfo,{state(){return {sum: 0}} })3.2 引用数据 在app.vue中引用sum template// 应用sumh1 {{ use_userInfoStore.sum }} /h1/templatescript setup import { userInfoStore } from ./store/userInfoconst use_userInfoStore userInfoStore()/script 4.修改数据 4.1 方法1 如果只修改一个值。可以使用这个办法。比较简单 templateh1 {{ use_userInfoStore.sum }} /h1button clickchangSum加1/button/templatescript setup import { userInfoStore } from ./store/userInfoconst use_userInfoStore userInfoStore()function changSum(){use_userInfoStore.sum }/script 4.2 方法2$patch 如果数据有多个可以使用以下$patch 方法 templateh1 {{ use_userInfoStore.sum }} {{ use_userInfoStore.name }} {{ use_userInfoStore.age }}/h1button clickchangSum加1/button/templatescript setup import { userInfoStore } from ./store/userInfoconst use_userInfoStore userInfoStore()function changSum(){use_userInfoStore.$patch({sum:20,age: 30,name: 张三,})}/script 当然使用上边的方法也可以,如下 function changSum(){use_userInfoStore.sumuse_userInfoStore.age 30use_userInfoStore.name 张三}5.组合式写法 以上都是选项式写法组合式写法在语法上相对来说比较简洁 5.1 定义数据 这里和选项式定义就有了区别 1.没有了stat和action关键字直接写逻辑。 2.在函数中不用使用this了 import { defineStore } from pinia import {ref} from vueexport const userInfoStore defineStore(userInfo,(){const sum ref(0)function changeSum(value){if (value 10){alert(数字太大了)}else{sum.value value}}return {sum,changeSum} })5.2 修改数据 template h1sum {{ use_userInfoStore.sum }}/h1 button clickadd1方式1/button button clickadd2方式2/button/templatescript setup langts import { userInfoStore } from ./store/userInfoconst use_userInfoStore userInfoStore()// 方式1直接修改 function add1(){use_userInfoStore.sum 1 }// 方式2 调用pinia中的函数进行修改对于传入的数据可以进行限制 function add2(){use_userInfoStore.changeSum(5) }/script九、组件通信 1.props props可以实现 父组件传数据给子组件也可以子组件给父组件传数据 1.1 父传子 定义子组件 注意 接收的key 一定要和 父组件传递的key一致。否则接收不到 templateh1我是test.vue/h1!-- 使用接收的数据 --h1{{ username }}/h1 /templatescript langtsexport default {name:test} /scriptscript setup langts import { defineProps } from vue// 这里定义prop_res 是为了打印如果不接收 打印不了 接收的数据 const prop_res defineProps([username])// 打印接收的数据 console.log(prop_res.username)/script定义父组件app.vue 注意点 :username 是一个自定义的key值并不是一个属性。v-bind决定了传递过去的是一个变量 “username” 是传递过去的变量 template h1我是app.vue/h1// z这里是给test组件传值。将username变量传给test组件 test :usernameusername/test /templatescript setup langts import {ref} from vue import test from ./components/test.vuelet username ref(admin)/script 1.2 子传父 子传父的原理 其实还是 在父组件中定义一个函数然后传递给子组件,子组件调用这个函数 将数据通过这个函数传递给父组件 定义子组件 template h1我是app.vue/h1 h1字组数据为: {{ Fdata }}/h1!-- 将定义好的函数发送给子组件 -- test :send_datasend_data/test/templatescript setup langts import test from ./components/test.vue import {ref} from vuelet Fdata ref()// 定义好一个函数让子组件使用然后利用这个函数将数据发送给父组件 function send_data(value:string){Fdata.value value}/script 定义子组件 templateh1我是test.vue/h1!-- 使用按钮将子组件的数据发送给父组件 --button clicksend_data(data)发送数据给父组件/button/templatescript langtsexport default {name:test} /scriptscript setup langts import { ref,defineProps } from vueconst data ref(测试数据122211)// 接收父组件传过来的函数用于发送数据 defineProps([send_data])/script2.provide和inject 这两个是一个组合专门实现父组件向下 给1一级后多级子组件传递数据 设置父组件 template h1我是app.vue/h1 hr test/test/templatescript setup langts import {ref,provide} from vue import test from ./components/test.vuelet Fdata ref(100)// 将Fdata变量 设置一个自定义key 提供给所有的后代组件使用 provide(d1,Fdata)/script 设置子组件 templateh1我是test.vue/h1h1父组件的数据为{{ x }}/h1/templatescript langtsexport default {name:test} /scriptscript setup langts import { inject } from vue// 引入父组件提供的变量。然后在模板中使用 let x inject(d1)/script
http://www.hkea.cn/news/14314974/

相关文章:

  • 做视频网站要什么软件我贷款网站如何做
  • 便利的赣州网站建设优秀网站h5案例分享
  • 网站建设培训资料做线下活动的网站
  • 常州建设银行网站首页泉州网站建设工作室
  • 做php网站的话要学什么语言无锡市建设局网站联系电话
  • 厦门市建设工程造价协会官方网站两学一做电脑答题网站
  • 常德烟机网站产品创意设计案例
  • 优化排名对网站不好建设在线观看视频网站
  • 科技网站建设公司长沙 网站优化
  • 做网站全过程专业集团门户网站建设费用
  • 生产厂家上什么网站做推广好中国移动生活app下载安装
  • 易居做网站上海公司注册流程及费用标准
  • 网站建设行wordpress模板好用吗
  • 网页设计网站官网WordPress登录页提示
  • 安徽省通信建设管理局网站浪尖工业设计公司官网
  • 全国建设部网站简述电子商务网站开发的主要步骤
  • 微商城网站建设公司的价格网红营销推广
  • 如何做一个更新网站网站建设计入哪个明细科目
  • 网站一直没有收录北京网站关键词排名推广
  • mcms怎么做网站专业柳州网站建设推荐
  • 网站开发设备费用计入什么科目电商 网站 设计
  • ui怎样做网站自动发卡网站怎么做
  • 贵阳市观山湖区网站建设可以自己制作图片的软件
  • 外贸累网站仿贴吧的网站
  • 怎样做约票的网站意思网站建设维护宣传
  • 网站如何不被收录线上店免费推广的软件
  • 网站建设面试表微信长图的免费模板网站
  • 乔括云智能建站软件开发项目管理书籍
  • 嘉兴网站建设托管物流网站建设公司
  • 企业网站建设的收获成都网站制作scgckj