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

网站产品展示怎么做wordpress企业站手机客户端

网站产品展示怎么做,wordpress企业站手机客户端,桂林整站优化,威县企业做网站3.组件插槽 3-1组件插槽 注意 插槽内容可以访问到父组件的数据作用域,因为插槽内容本身就是在父组件模版中定义的 插槽内容无法访问子组件的数据.vue模版中的表达式只能访问其定义时所处的作用域,这和JavaScript的词法作用域是一致的,换言之: 父组件模版的表达式只能访问父组…3.组件插槽 3-1组件插槽 注意 插槽内容可以访问到父组件的数据作用域,因为插槽内容本身就是在父组件模版中定义的 插槽内容无法访问子组件的数据.vue模版中的表达式只能访问其定义时所处的作用域,这和JavaScript的词法作用域是一致的,换言之: 父组件模版的表达式只能访问父组件的作用域,子组件模版中的表达式只能访问子组件的作用域 3-2具名插槽 具名思意:就是给插槽取一个相同的名字,使它到相应的位置 案例 App.vue templatediv!-- 使用具名插槽的使用,使用template进行包裹--!--v-slot:left,记住没有引号--template v-slot:lefti左边/i/template!-- 可以省略写成# --template #centerdiv中间/div/templatetemplatei右边/i/template/div /templateChild.vue templatediv!-- name:是插槽的名字,与父组件的slot要一致 --slot nameleft/slotslot namecenter/slotslot nameright/slot/div /template3-3作用域插槽 在某些场景下,如果想要同时使用父组件和子组件区域内的数据,要做到这一点,就需要让子组件在渲染的时候,把数据提供给插槽,这就是作用域插槽 案例:通过axios获取猫眼的数据 注意点: v-slot“scope” 不能写在Film组件里面,如果写在Film里面就需要删掉template包装元素v-slot“{scope}”:还可以使用对象解析,因为传过来的是一个对象 App.vue(方式一) templateFilmtemplate v-slotscopeulli v-fordata in scope.list :keydata.idimg :srcdata.img stylewidth: 100px; {{ data.nm }}/li /ul/template/Film /templateFilm.vue templatedivul!-- 把数据通过作用域插槽,传到父组件去(可以传多个,传过去的是一个对象--slot :listdataListli v-fordata in dataList :keydata.id{{ data.nm }}/li/slot/ul/div /template script//引入axios模块,需要先下载 npm i axiosimport axios from axios;export defalut{data(){return {dataList:[]}},//钩子函数,mounted,页面一加载就显示数据mounted(){//json文件,记得放在public文件夹下面,否则访问不到axios.get(../../../public/js/hot.json).then(res {console.log(res.data.data.hot);this.dataList res.data.data.hot;})}} /script方式二 具名插槽与作用域联合使用 App.vue Film!-- 具名插槽与作用域插槽联合使用 --!--#Film:就是子组件定义了一个nameFilm --!-- v-slot:Film#Film--!-- template v-slot:Film{list,a} --!-- 使用default默认插槽,则页面显示的是子组件的内容,不再是父组件的内容 --!-- template #default{list,a} --template #Film{list,a}{{ a }}ulli v-fordata in list :keydata.idimg :srcdata.img stylewidth: 100px; {{ data.nm }}/li/ul/template /FilmFilm.vue !-- 还可以使用具名插槽配合作用域插槽一起使用 --slot :listdataList :a1 :b2 nameFilmul li v-fordata in dataList :keydata.id{{ data.nm }}/li/ul/slot4.生命周期 每个Vue组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到DOM,以及在数据改变时更新DOM.在此过程中,它也会运行被称为生命周期钩子函数,让开发者有机会再特定阶段运行自己的代码 (1) beforeCreate()会在实例初始化完成、props 解析之后、data() 和 computed 等选项处理之前立即调用。(无法访问状态以及methods) (2)created() 当这个钩子被调用时以下内容已经设置完成响应式数据、计算属性、方法和侦听器。然而此时挂载阶段还未开始因此 $el 属性仍不可用。(能访问到初始化,并且能做初始化) (3)beforeMount()当这个钩子被调用时组件已经完成了其响应式状态的设置但还没有创建 DOM 节点。它即将首次执行 DOM 渲染过程。(第一次创建最后能修改状态的地方) (4)mounted()所有同步子组件都已经被挂载。这个钩子通常用于执行需要访问组件所渲染的 DOM 树相关的副作用(挂载dom节点,初始化轮播,Echarts,setInterval,ajax) 只要状态改变,5和6函数就会被调用 (5)beforeUpdate()这个钩子可以用来在 Vue 更新 DOM 之前访问 DOM 状态。在这个钩子中更改状态也是安全的。(能访问到最新的状态,无法访问到更新后的dom) (6)updated()这个钩子会在组件的任意 DOM 更新后被调用这些更新可能是由不同的状态变更导致的。如果你需要在某个特定的状态更改后访问更新后的 DOM请使用 nextTick() 作为替代。(访问到更新之后的dom) (7)beforeUnmount()当这个钩子被调用时组件实例依然还保有全部的功能。 (8)unmounted()在一个组件实例被卸载之后调用。 Echarts案例 npm i echars template!-- 必须要有宽度和高度,否则显示不出来 --divbutton clicksmall小图/buttondiv idmain :stylestyleObj/div/div /template script import * as echarts from echarts; export default {data() {return {styleObj: {width: 600px,height: 400px}}},methods: {small() {this.styleObj.width 400px// this.styleObj.height 100px//----------------方法二,改变大小-----------------// setTimeout(() {// this.myChart.resize() // },0)//----------------方法三.直接使用提供的方法-----------------// 在 Vue 中DOM 更新不是同步的而是异步执行的而 $nextTick 则提供了一种在 DOM 更新后执行代码的方式。this.$nextTick(() {this.myChart.resize()})},},mounted() {// 基于准备好的dom初始化echarts实例this.myChart echarts.init(document.getElementById(main)); // 绘制图表 this.myChart.setOption({title: {text: ECharts 入门示例},tooltip: {},xAxis: {data: [衬衫, 羊毛衫, 雪纺衫, 裤子, 高跟鞋, 袜子]},yAxis: {},series: [{name: 销量,type: bar,data: [5, 20, 36, 10, 10, 20]}] });},updated() {// 改方法是控制点击按钮之后,使值生效// 任何状态更新,都会触发该生命周期函数// this.myChart.resize();}, }/script//----------------跟随窗口,大小随着改变-----------------window.onresize () {this.myChart.resize()}},unmounted() {// 销毁实例window.onresize null}挂载在window上的东西,记得要销毁,使用unmound 5.组件的封装 轮播组件 App.vue templatedivMySwiper v-ifdataList.length eventhandleEvent :loopfalseMySwiperItem v-fordata in dataList :keydata {{ data.nm }}img :srcdata.img alt srcset stylewidth: 600px; height:300px /MySwiperItem/MySwiper{{ info }}/div /template scriptimport MySwiper from ./MySwiper.vue; import MySwiperItem from ./MySwiperItem.vue;import axios from axios; export default {data() {return {dataList: [],info:}},methods: {handleEvent(index) {console.log(index,);this.infothis.dataList[index].videoName}},mounted() {axios.get(../../../public/js/hot.json).then(res {console.log(res.data.data.hot);this.dataList res.data.data.hot;this.infothis.dataList[0].videoName})},components: {MySwiper,MySwiperItem}} /scriptMySwiper.vue template div classswiperdiv classswiper-wrapperslot/slot/div!-- If we need pagination --div classswiper-pagination/div!-- If we need navigation buttons --div classswiper-button-prev/divdiv classswiper-button-next/div/div /template script import Swiper from swiper/bundle; import swiper/css/bundle; export default {props: {loop: {type: Boolean,default: true} },mounted() {var mySwiper new Swiper(.swiper, {loop: this.loop,// If we need paginationpagination: {el: .swiper-pagination,},// Navigation arrowsnavigation: {nextEl: .swiper-button-next,prevEl: .swiper-button-prev,},on:{slideChange: () {console.log(改变了activeIndex为 mySwiper.activeIndex);this.$emit(event,mySwiper.activeIndex)},}, });} } /script style .swiper {width: 600px;height: 300px; } /styleMySwiperItem.vue templatediv classswiper-slideslot/slot/div/template6.自定义指令 6-1指令写法钩子 除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外Vue 还允许你注册自定义的指令 (Custom Directives)。自定义指令主要是为了重用涉及普通元素的底层 DOM 访问的逻辑 全局注册自定义指令 main.js里面 CreateApp(App) //自定义一个颜色的指令,这里写color就可以,使用指令需要加v-,就是v-color .directive(color,{//挂载在mounted上mounted(el){//el是dom节点console.log(el);el.style.backgroundColor red} }) .mount(#app)App.vue(局部注册) templatediv!--方式1--h1 v-colorred /h1!--方式2:动态绑定--h1 v-colormyColor /h1/div /template scriptexport defalut{data(){return {myColor:yellow}}//自定义指令directives:{color:{mounted(el,binding){el.style.backgroundbinding.value},//动态绑定,需要使用更新钩子函数updated(el,binding){el.style.backgroundbinding.value}}}} /script指令可以简写 对于自定义指令来说一个很常见的情况是仅仅需要在 mounted 和 updated 上实现相同的行为除此之外并不需要其他钩子。这种情况下我们可以直接用一个函数来定义指令如下所示 div v-colorcolor/divcolor(el, binding) {el.style.backgroundColor binding.value;},指令钩子 const myDirective {// 在绑定元素的 attribute 前// 或事件监听器应用前调用created(el, binding, vnode, prevVnode) {// 下面会介绍各个参数的细节},// 在元素被插入到 DOM 前调用beforeMount(el, binding, vnode, prevVnode) {},// 在绑定元素的父组件// 及他自己的所有子节点都挂载完成后调用mounted(el, binding, vnode, prevVnode) {},// 绑定元素的父组件更新前调用beforeUpdate(el, binding, vnode, prevVnode) {},// 在绑定元素的父组件// 及他自己的所有子节点都更新后调用updated(el, binding, vnode, prevVnode) {},// 绑定元素的父组件卸载前调用beforeUnmount(el, binding, vnode, prevVnode) {},// 绑定元素的父组件卸载后调用unmounted(el, binding, vnode, prevVnode) {} }
http://www.zqtcl.cn/news/704820/

相关文章:

  • 淄博做网站宿迁房产网丫丫找房
  • 苏州专业做网站比较好的公司杭州好的公司网站设计
  • 做百度网站要多少钱帮做网站一般多少钱
  • 云南网站备案查询山西做网站费用
  • 北京建站管理系统开发网站高转化页面
  • 南充网站制作不会做网站能做网络销售吗
  • 这2个代码 找做网站的 安装一下搜索引擎排行榜
  • 百度收录收费 重大网站网络空间设计说明怎么写
  • 网站开发 php模板图书馆网站建设的项目报告
  • 保定模板建站定制网站wordpress 收集
  • 万网 网站模板软件开发三个主要阶段
  • 网站首页psd格式怎么做seo关键词有哪些类型
  • 做部队网站技术vue做购物网站
  • 品牌网站建设服务机构wordpress英文改中文
  • 系统开发费外链优化方法
  • 网站建设公司起名网站构建的友情链接怎么做
  • 网站建设湖南wordpress 缓存时间
  • 木藕设计网站大全福州网络营销推广产品优化
  • 建设银行网上官方网站怎么批量修改wordpress文章内容
  • 多肉建设网站的目的及功能定位app网站开发成本
  • 如何保存网站上的图片不显示图片报纸网站建设
  • 网站营销的流程品牌推广方式有哪些
  • 网站开发的条件美术字设计
  • 网站可以自己做服务器么wordpress架站教程
  • 用ps怎么做网站导航条怎么做部署iis网站
  • 酒店 网站构建怎么创建自己的网址
  • 江苏推广网站建设业务个人工作室网站源码带后台
  • 色一把做最好的网站赤峰微信网站建设
  • 指定网站长期建设 运营计划网站淘宝客 没备案怎么做
  • 绵阳网站推广排名知名商业网站有哪些