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

网站伪静态规则浏览器打开app

网站伪静态规则,浏览器打开app,前端实战项目11套,下列不是用于制作网页的软件Vue中渲染函数的使用 1. render函数2. h()的使用3. render函数和h函数的区分 vue中的渲染函数: 1.template2.render函数3.jsx -> js extension(jsx也是编译成render函数,可编程能力更强) 1. render函数 1.1. 认识h函数 1.1.1. Vue推荐在绝大多数情况…

Vue中渲染函数的使用

      • 1. render函数
      • 2. h()的使用
      • 3. render函数和h函数的区分

  • vue中的渲染函数:
    • 1.template
    • 2.render函数
    • 3.jsx -> js extension(jsx也是编译成render函数可编程能力更强)

1. render函数

  • 1.1. 认识h函数

    • 1.1.1. Vue推荐在绝大多数情况下使用模板来创建HTML,一些特殊的场景,真的需要javaScript的完全编程的能力,
      这个时候可以使用渲染函数,它比模板更接近编译器。
    • 1.1.2. VNodeVDom的概念
      • Vue在生成真实DOM之前,会将我们的节点转换成VNode, 而VNode组合在一起形成一棵树结构,就是虚拟DOM(VDOM);

      • 事实上,之前编写的template中的HTML最终也是使用渲染函数生成对应的VNode;

      • 如果想重复利用JavaScript的编程能力,可以编写createVNode函数,生成对应的VNode;

      • Vue底层渲染流程如下图:

        <!-- HTML模板 -->            <!--  h函数 -->           <!--  虚拟节点VNode -->         <!--  真实DOM -->
        <template> <div>                      createVNode()                     VNode                          真实DOM<h2></h2>                createVNode()                   ↙      ↘                    ↙          ↘  <p></p>                  createVNode()                 VNode     VNode               h2             p  </div>
        </template>
        

        在这里插入图片描述

  • 1.2. 使用h函数

    • h() 函数是一个用于创建vnode的一个函数;
    • 其实更准确的命名是createVNode()函数,但是为了简便在Vue将之简化为h()函数(本质上是createVNode()函数)

2. h()的使用

  • h()函数接收三个参数:tag, props, children
      { String | Object | Function } tag                             {  Object } props                                    { String | Array | Object } children一个HTML标签、一个组件、一个异步组件、或                          与attribute、prop 和事件相对应的对象                    子 VNodes, 使用`h()` 构建一个函数式组件                                                  会在模板中使用                                         使用字符串获取 `文本 VNode``有插槽的对象`必需的                                                         可选的                                                 可选的例如:'div'                                                    { }                                                    [ 'some text comes first',h('h1', null, '哈哈哈哈'),h(myComponent, {someProp: 'fooBar'})]
  • 注意事项:
    • 如果没有props, 通常可以将children作为第二个参数传入;
    • 如果会产生歧义,可以将null作为第二个参数传入,将children作为第三个参数传入;
  • HTML转成VNode的调用案例:
      <div class="abc" title='内容'>h2p</div>// 转成VNode:createVNode('div', { class: 'abc', title: '内容' }[createVNode('h2', null, '我是标题'),createVNode('p', { }, '我是内容')])
  • createVNode函数的调用如下图;
    在这里插入图片描述

3. render函数和h函数的区分

  • 流程:render函数是放在对应的组件选项里面的,当渲染组件的时候,会调用render函数,一旦调用就会返回的VNode,为了去创建一系列的VNode, 所以会调用h函数并渲染成HTML

  • 区分:render函数是写到组件里面的,而h函数(createVNode函数)才是真正去创建VNode的

    1. render函数使用
      1. Options API的用法,使用render函数选项
      • 代码如下:
          <script>import { h } from 'vue'import Home from './Home.vue'export default {data () {return {counter: 0}},render () {console.log('this===', this);return h('div', { class: 'app' } , [h('h2', { class: 'title' }, `当前计数:${ this.counter }`),h('button', { onClick: this.increment }, '+1'),h('button', { onClick: this.decrement }, '-1'),// 在render函数中,引入其他组件不需要注册(components), 在template模板中需要注册h(Home)])},methods: {increment () {this.counter++},decrement() {this.counter--}}}</script>
        
      1. Composition API的用法
      • 2.1. setup函数的使用,
        • 关键点:setup()中返回一个函数,函数中返回VNode
        • setup函数默认返回一个对象 => return { counter, increment, decrement }
        • setup函数中使用render函数,不要返回对象,setup本身需要是返回一个函数类型, 箭头函数中再去返回VNode
        • 代码如如下:
          <script>import { h, ref } from 'vue'import Home from './Home.vue'export default {setup () {const counter = ref(0)const increment = () => {counter.value++}const decrement = () => {counter.value--}// setup函数默认返回一个对象 => return { counter, increment, decrement }// setup函数中使用render函数,不要返回对象,返回一个函数, 箭头函数中再去返回VNodereturn () => {return h('div', {className: 'app' }, [h('h2', { className: 'title' }, `当前计数: ${ counter.value }`),h('button', { onClick: increment }, '+1'),h('button', { onClick: decrement} , '-1'),h(Home)])}// return () => h('div', {className: 'app' }, [//   h('h2', { className: 'title' }, `当前计数: ${ counter.value }`),//   h('button', { onClick: increment }, '+1'),//   h('button', { onClick: decrement} , '-1'),//   h(Home)// ])}}</script>
        
      • 2.2. setup语法糖的使用
        • 在setup中义render函数
        • 在template模板中使用render标签
        • 代码如下;
            <template><render/></template><script setup>import { ref, h } from 'vue'import Home from './Home.vue'const counter = ref(0)const increment = () => {counter.value++}const decrement = () => {counter.value--}// 使用render函数,是为了使用js的方式去编写代码,基本上很少使用// 如果依然想使用JS的方式编写,可以使用JSX语法,JSX本质会转化成render函数// JSX的优点:1. 快速的编写元素的结构  2. 完全可以利用JS编程能力const render = () => h('div', {className: 'app' }, [h('h2', { className: 'title' }, `当前计数: ${ counter.value }`),h('button', { onClick: increment }, '+1'),h('button', { onClick: decrement} , '-1'),h(Home)])</script>
      1. render函数的使用推荐
      • 使用render函数,是为了使用js的方式去编写代码,基本上很少使用
      • 如果依然想使用JS的方式编写,可以使用JSX语法,JSX本质会转化成render函数
        • JSX的优点
            1. 快速的编写元素的结构
            1. 完全可以利用JS编程能力
http://www.dtcms.com/wzjs/599712.html

相关文章:

  • 评价一个网站wordpress 地址插件
  • 怎么做qq钓鱼网站windows网页制作工具
  • 网站建设项目外包做网站用jsp和html
  • 企业网站不足室内设计有哪些网站
  • 织梦制作网站地图工程分包网
  • 模仿淘宝网站吉林省建设信息网站
  • 新建茶叶网站文章内容建设推荐 网页游戏
  • 网站续费自己做做微信广告网站
  • 对象存储 做视频网站网站建设的设计思路
  • 外卖网站建设的策划wordpress 搜索报错
  • 如何快速备案网站电子贺卡制作软件app
  • 运河经济开发区建设局网站建站之星模板制作
  • 台州公司建站模板wordpress链接失效
  • 宠物网站推广怎么做2023年二建报名网站官网登录
  • 石家庄做网站制作公司wordpress主题文件在哪
  • 网站导航页怎么做泉州网站外包
  • 苏州市网站建设服务房地产开发公司注册资金要求
  • 精品课程网站的建设电气毕业设计代做网站
  • 网站建设水上乐园建网站公司那个比较好
  • 长沙建站智能模板设计师接单渠道
  • php手机网站后台源码公众号运营内容
  • 外贸网站免费模板开发网站的目标
  • 商业网站页面厦门建设局电话
  • 连云港东海县做网站工商网上注册
  • 电子商务网站建设与实践考试个人怎么建立网站吗
  • 新产品如何快速推广市场福州百度推广优化排名
  • 门户类网站有哪些张雪峰谈电子商务专业
  • 谷歌下载安装南昌seo排名优化
  • 南通专业网站制作畜牧业网站模板
  • 用哪个网站做相册视频湛江建网站